使用 phpmyadmin 的 MySQL 触发器

Posted

技术标签:

【中文标题】使用 phpmyadmin 的 MySQL 触发器【英文标题】:MySQL Triggers using phpmyadmin 【发布时间】:2013-11-26 22:11:30 【问题描述】:

我正在尝试使用 phpmyadmin 4.0.8 为 mysql 编写一个非常简单的触发器, 我想做的是,在插入一个名为“上传”的表后,我将用户名和 ID 放入另一个名为“评级”的表中

这就是我正在尝试的,

在每行上传插入后创建触发器 copy_pid 开始

INSERT INTO rating (uid,pid) VALUES (NEW.username,NEW.id);

结束;

我收到“#1064 - 你有一个错误...”

【问题讨论】:

【参考方案1】:

MySQL 将 INSERT 语句末尾的分号解释为输入的结尾。您需要在设置触发器时更改分隔符:

delimiter $$
CREATE TRIGGER copy_pid AFTER INSERT on upload FOR EACH ROW 

BEGIN

INSERT INTO rating (uid,pid) VALUES (NEW.username,NEW.id);

END$$
delimiter ;

【讨论】:

确实可以解决问题!但是......现在当我插入上传时,表格中没有任何内容 这就是我现在正在做的 "DELIMITER // DROP TRIGGER IF EXISTS copy_pid // 在 sc_main.upload 上插入后创建触发器 copy_pid FOR EACH ROW BEGIN INSERT INTO sc_main.rating (uid, pid)值(NEW.username,NEW.id);END" 我没有查看您的触发器实际上在做什么。你的新代码能满足你的需要吗? 不,它只是阻止我插入 this 触发的表中。但它确实回答了我想知道的语法错误

以上是关于使用 phpmyadmin 的 MySQL 触发器的主要内容,如果未能解决你的问题,请参考以下文章

phpmyAdmin 中的 MySQL 触发器错误

更新前的 MySQL 使用 PhpMyAdmin 触发插入语法错误

在 phpmyadmin 上插入触发器

尝试编写 MySQL 触发器以替换 phpmyadmin 上的 CHECK 约束时出现语法错误

phpmyadmin 中的 MYSQL 触发器语法问题

phpMyAdmin中的MySQL触发器[关闭]