我尝试根据当前日期和时间生成主键,
这是我的触发器:
DELIMITER $$
CREATE TRIGGER cuenta
BEFORE UPDATE ON cuenta
FOR EACH ROW
BEGIN
INSERT INTO cuenta VALUES (NULL);
SET NEW.NoCuenta = DATE_FORMAT(NOW(), '%000%d%m%y%h%i%s');
END$$
DELIMITER ;
我的桌子cuenta:
NoCuenta, varchar(15), NOT NULL.
TipoCuenta, varchar(7),
saldo, float
IDCliente, int(8).
然后我尝试插入:
insert into banco.cuenta(TipoCuenta, saldo, IDCliente)
VALUES('Debito','12500.5','1');
结果: 1行受影响,1警告:1364 Field' NoCuenta'没有默认值 但是当我从cuenta键入select *时,NoCuenta字段为空。
然后当我尝试插入新行时,它会显示: 错误代码:1062。重复输入''关键' PRIMARY'
请帮助!!
答案 0 :(得分:0)
为什么要在触发器中插入表格?试试这个:
DELIMITER $$
CREATE TRIGGER cuenta
BEFORE UPDATE ON cuenta
FOR EACH ROW
BEGIN
SET NEW.NoCuenta = DATE_FORMAT(NOW(), '%000%d%m%y%h%i%s');
END$$
DELIMITER ;