MySQL,在插入行之前生成主键的触发器

时间:2014-06-16 02:25:50

标签: mysql

我尝试根据当前日期和时间生成主键,

这是我的触发器:

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'

请帮助!!

1 个答案:

答案 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 ;