【问题标题】:Problem create tigger for autoincrement on phpMyadmin问题在 phpMyadmin 中为自动增量创建触发器
【发布时间】:2019-10-24 02:06:39
【问题描述】:

我想在删除后创建一个触发器,该触发器将值 max ID + 1 用于我的自动增量。

这是我当前的代码,其中包含来自 MySQL 的错误:

DELIMITER //
CREATE TRIGGER form_id_autoincrement
AFTER DELETE ON tbl_form
IF EXISTS (SELECT `form_id` FROM tbl_form) 
    THEN
        ALTER TABLE tbl_form AUTO_INCREMENT = (SELECT MAX(`form_id`)+1 FROM tbl_form);
ELSE
    ALTER TABLE tbl_form AUTO_INCREMENT=1;
END IF;
END; //

DELIMITER;

#1064 - Error syntax near 'IF EXISTS (SELECT `form_id` FROM tbl_form) THEN ALTER TABLE tbl_f' line 3

【问题讨论】:

  • 我怀疑这是 phpMyAdmin 的问题。你应该用你使用的数据库来标记它,例如 MySQL 或 MariaDB
  • 触发器不能使用显式或隐式开始或结束事务的语句 - 即不允许 ALTER。

标签: mysql sql auto-increment database-trigger


【解决方案1】:

ALTER TABLECREATE TABLE 不允许在 Mysql 的触发器中使用。

因此,如果您使用 MySQL 并且想要更改表 tbl_form 中任何 Delete 上的表,那么您可能只能从服务器端代码执行此操作,就像您可以创建一个函数并在之后调用它删除成功。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-09-01
    • 2018-03-04
    • 2011-05-19
    • 2020-05-09
    • 1970-01-01
    • 1970-01-01
    • 2015-10-14
    相关资源
    最近更新 更多