我尝试在将值插入表ec3_checking中之前设置触发器,如果​​id_count的最大值为(n-1),id_count是一个auto_increment参数,则将触发器的函数设置为'account_id'为'CH-n'。

delimiter //
CREATE TRIGGER account_id_add BEFORE INSERT ON `ec3_checking`
FOR EACH ROW
BEGIN
        DECLARE anum int;
        DECLARE bnum int;
        SET bnum =  max(id_account);
        SET anum = bnum + 1;
        SET NEW.account_id =  concat('CH-', anum);
END//


然后我尝试在表中插入一些值

insert into `ec3_checking` (balance, overdraft_limit)
VALUES
('300','50');


有一个错误:1111,组功能的无效使用,有人可以帮助我吗?
非常感谢你。

最佳答案

CREATE TRIGGER `account_id_add` BEFORE INSERT ON `ec3_checking`
FOR EACH ROW BEGIN
    DECLARE anum int;

    SET @bnum = (SELECT max(id_account) FROM ec3_checking);

    SET anum = @bnum + 1;
    SET NEW.account_name =  concat('CH-', anum);
END

关于php - MySQL触发器和插入值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47622047/

10-09 19:14