mysql - 触发器语法错误

标签 mysql triggers

我有两个包含以下列名称的表。

用户

用户界面 |电邮 |通过

user_profiles

_电子邮件 |数量 |等级

我试图确保每次将新用户添加到 users 表时,user_profiles 表都会为新用户创建一个新行。但是它失败了。在阅读了许多示例触发器语句后,我似乎无法找到错误。

CREATE TRIGGER updatUserProfilesTBL AFTER INSERT ON users
BEGIN
INSERT INTO user_profiles (_email)
VALUES (new.email)
END;

最佳答案

看起来您缺少 FOR EACH ROW。此外,如果通过 MySQL 命令行执行此操作,则需要更改 DELIMITER 并在插入语句后添加 ;

DELIMITER $$
CREATE TRIGGER updatUserProfilesTBL AFTER INSERT ON users
FOR EACH ROW BEGIN
  INSERT INTO user_profiles (_email)
     VALUES (new.email);
END$$
DELIMITER ;

根据to the CREATE TRIGGER spec ,它不是可选的。

关于mysql - 触发器语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10540670/

相关文章:

MySQL 将两列合并为一列,其中一列具有 NULL 值(应删除)

mysql - 我想从 SQL 中的表中更新数量,通过检查 MIN(Exp Date) 和条形码

version-control - 强制 : Prefill changelist description

sql - 为什么这个MySQL触发器会导致堆栈溢出?

ms-access - Access 2007 触发器和程序等效项?

c# Entity Framework 抛出异常但不回滚数据库

mysql - SQL 垂直分组

sql - 我如何知道数据库触发器是 DROP_TABLE 还是 ALTER_TABLE?

mysql - API请求后 Node 服务器不返回任何响应

mysql - MySQL触发语法错误