我正在开发的程序的后端设计很差,基本上需要两个不同的表来保存完全相同的信息。我正在尝试编写一个触发器,它将使用刚刚在表 A 中更新的相同信息来更新表 B。哦,这是使用 MYSQL 数据库 我不确定我是否只是有语法错误或者我是否缺少概念,任何帮助将不胜感激......这是我到目前为止所拥有的
DELIMITER $$
DROP TRIGGER IF EXISTS after_update_A;
CREATE TRIGGER `after_update_A`
AFTER UPDATE ON `A` FOR EACH ROW
BEGIN
UPDATE TABLE B
SET username = NEW.username
, password = NEW.password
, email = NEW.email
WHERE id = NEW.id
END
$$
DELIMITER ;
我得到的错误都与此类似...... ERROR 1064 (42000):您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,了解在 '= users.username 附近使用的正确语法 ,B.email = 用户.email D' 在第 4 行
最佳答案
您需要使用 ;
关闭触发器内的每个语句,我的意思是每个。
CREATE TRIGGER `after_update_A` AFTER UPDATE ON `A` FOR EACH ROW
BEGIN
UPDATE TABLE B
SET username = NEW.username
, password = NEW.password
, email = NEW.email
WHERE id = NEW.id; //<<-----------
END $$
关于mysql - 使用更新触发器更新另一个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7404805/