mysql - SQL 触发器 "AFTER INSERT ON"不仅不工作,而且停止主插入

标签 mysql sql triggers phpmyadmin

enter image description here我正在使用 PhpMyAdmin 处理由 000webhost 托管的 MySql 数据库。 我现在的数据库非常简单。我有 2 个表 accountslvl_time 通过关系连接 (accounts)id->user_id (lvl_times)。每次在 accounts 中创建新字段时,我都需要在 lvl_times 中创建行。 lvl_times 中的新字段需要与新创建的帐户具有相同的 user_id

我尝试使用带有“AFTER INSERT ON”触发器的 coupe 版本。它不仅不起作用,而且还会触发停止主插入,并且新帐户在插入后会以某种方式延迟。 例如我试过这个触发器:

   CREATE TRIGGER createEmptylvlfields 
         AFTER INSERT ON accounts 
         FOR EACH ROW 
            INSERT INTO lvl_times (user_id) SELECT id FROM inserted

我附上了我的简单数据库的方案作为图像

请帮忙

最佳答案

你的触发器应该是:

    CREATE TRIGGER createEmptylvlfields 
     AFTER INSERT ON accounts 
     FOR EACH ROW 
        INSERT INTO lvl_times (user_id) 
          VALUES (NEW.id);

是的,如果触发器失败,插入将回滚。

关于mysql - SQL 触发器 "AFTER INSERT ON"不仅不工作,而且停止主插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46747901/

相关文章:

Mysql 查询带有 order by。奇怪的执行计划

SQL Server 进程队列竞争条件

sql insert select from – 具有唯一列id的多行

mysql - 如何使用插入前触发器分配外键值

mysql - 使用 MySQL 记录所有表上的所有事件

MySQL 存储过程 SELECT、三个 WHERE CLAUSE 值和 ORDER BY

MySQL 子查询仅从 JOIN 表中获取最新值

mysql - 使用 NOT IN 和 UNION 语句构建 MyBatis 查询

mysql - 在 group_concat 中排序

PostgreSQL:更新主表上的记录并移动子分区中的记录