mysql - 使用 MySQL 数据库触发器

标签 mysql sql database database-trigger

我有三个表:usersaccountaccountinfo 我正在尝试创建一个触发器,将用户的 id 添加到帐户表中的 UserID 列。这是我尝试过的:

CREATE TRIGGER catchUser BEFORE INSERT ON defaultdatabase.users 
FOR EACH ROW
BEGIN
INSERT INTO defaultdatabase.account(UserID) VALUES (new.id);
END

但是,在我的 INSERT 声明之后我得到一个错误,

Syntax Error: insert 'semicolon'

为什么我会收到此错误,是我有分号还是我的触发器错误?

如果这也有任何不同,我正在使用 MySQL 5.6。

最佳答案

您需要指定分隔符:

delimiter //
CREATE TRIGGER catchUser BEFORE INSERT ON defaultdatabase.users 
FOR EACH ROW
BEGIN
INSERT INTO defaultdatabase.account(UserID) VALUES (new.id);
END; //
delimiter ;

关于mysql - 使用 MySQL 数据库触发器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27701431/

相关文章:

php - 您的 PHP MySQL 库版本与您的 MySQL 服务器版本不同

mysql - 如果 SQL 表中有两种类型的行,并且我想选择其中一种但接受另一种

mysql - 大表查询优化(mysql)

php - 为 PHP 5 编译 SQLite 的设置是什么?

MySQL exclusion <> 仅在比较其他列时不伴随 OR 时才有效

mysql - 在 MySQL 中存储具有不同产品类型的订单,每个产品类型都有一组唯一的参数

mysql - 是否可以在 IN 子句或任何其他可能的方式中传递两列

MySQL 分组依据与另一列的排序/优先级

c# - 如果我有一个正弦表,我应该在唤醒时将整个表查询到内存中吗?

PHP move_uploaded_file 上传视频到 MySQL 不工作