我正在开发的程序的后端设计很差,基本上需要两个不同的表来保存完全相同的信息。我正在尝试编写一个触发器,它将使用刚刚在表 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 ;
Run Code Online (Sandbox Code Playgroud)
我得到的错误都与此类似... ERROR 1064 (42000): You have an error in your SQL 语法;检查与您的 MySQL 服务器版本相对应的手册,了解在第 4 行 '= users.username , B.email = users.email D' 附近使用的正确语法
您需要用 来关闭触发器内的每条语句;,我的意思是每一条。
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 $$
Run Code Online (Sandbox Code Playgroud)