CREATE TABLE borrow( number BIGINT, borrowname varchar(10), name varchar(10), id BIGINT, phone BIGINT, borrowtime date, returntime date, borrownum BIGINT, PRIMARY key(number) )ENGINE=InnoDB DEFAULT CHARSET=utf8;create table reader( number BIGINT, borrowname varchar(10), name varchar(10), id BIGINT, phone BIGINT, sex varchar(10), borrownum BIGINT, originalbalance double, PRIMARY KEY(number) )ENGINE=InnoDB DEFAULT CHARSET=utf8;delimiter%% CREATE TRIGGER reader_borrow AFTER INSERT on reader FOR EACH ROW INSERT INTO borrow VALUES(new.number,new.borrowname,new.name,new.id,new.phone,NOW(),DATE_ADD(NOW(),INTERVAL 30 day),new.borrownum)%% delimiter;insert into reader values(1,'《所有》','刘江林',20217329,17264440107,1,100);哪里出错了
时间: 2024-01-07 16:06:12 浏览: 178
您的SQL语句有一些问题,可能是以下几个原因导致的错误:
1. 在第一行和第二行之间没有添加分号,应该在第一条语句后面添加分号。
2. 在第一行的 borrow 表中,borrownum 的数据类型没有指定,应该使用 BIGINT 或其他适当的数据类型。
3. 在第二行的 reader 表中,originalbalance 的数据类型没有指定,应该使用 DOUBLE 或其他适当的数据类型。
4. 在第三行的 TRIGGER 语句中,应该使用 NEW.number 代替 new.number。
以下是已经修改过的 SQL 语句:
CREATE TABLE borrow(
number BIGINT,
borrowname varchar(10),
name varchar(10),
id BIGINT,
phone BIGINT,
borrowtime date,
returntime date,
borrownum BIGINT,
PRIMARY KEY(number)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE reader(
number BIGINT,
borrowname varchar(10),
name varchar(10),
id BIGINT,
phone BIGINT,
sex varchar(10),
borrownum BIGINT,
originalbalance DOUBLE,
PRIMARY KEY(number)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
DELIMITER %%
CREATE TRIGGER reader_borrow AFTER INSERT ON reader
FOR EACH ROW
INSERT INTO borrow VALUES(
NEW.number,
NEW.borrowname,
NEW.name,
NEW.id,
NEW.phone,
NOW(),
DATE_ADD(NOW(),INTERVAL 30 DAY),
NEW.borrownum
)
%%
DELIMITER ;
INSERT INTO reader VALUES(1,'《所有》','刘江林',20217329,17264440107,'1',100);
阅读全文