mysql - 使用触发器更新另一个数据库中的表

标签 mysql sql database triggers

我正在使用以下触发器更新 mysql 5.0.7 中另一个数据库中的用户表 触发器的创建没有给出错误,但是在更新第一个数据库中的用户表时触发器不起作用。有什么建议吗?

DELIMITER $$         
DROP TRIGGER IF EXISTS after_update_user;

CREATE TRIGGER after_update_user;

AFTER UPDATE ON db_test.user  FOR EACH ROW;
BEGIN
    UPDATE TABLE db_testplus.user;
    SET  name = NEW.name;

    WHERE id = NEW.id;
END

$$
DELIMITER ;

我也使用了这段没有分号的代码,但还是一样

DELIMITER $$         
DROP TRIGGER IF EXISTS after_update_user

CREATE TRIGGER after_update_user

AFTER UPDATE ON db_test.user  FOR EACH ROW
BEGIN
    UPDATE TABLE db_testplus.user
    SET  name = NEW.name

    WHERE id = NEW.id
END;

$$
DELIMITER ;

最后是有效的代码

delimiter |
DROP TRIGGER IF EXISTS after_update_user|
 CREATE TRIGGER after_update_user AFTER UPDATE ON db_test.user
  FOR EACH ROW BEGIN
     UPDATE db_testplus.user SET name = NEW.name WHERE id = NEW.id;
  END;
|
delimiter ;

最佳答案

请你检查一下

AFTER UPDATE ON db_test.user  FOR EACH ROW
BEGIN
    UPDATE TABLE db_testplus.user
    SET  name = NEW.name

    WHERE id = NEW.id
END;

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

相关文章:

php - 使用 SUM 基于时间范围显示数据

sql - 哪个是避免 n+1 问题的最快执行方法,为什么?

sql - 锁定插入件

php - 在这种情况下如何使用 UNION (MySQL)

java - 创建多对多关系

具有条件的MySQL UNIQUE约束

android - 尝试设置 SQL 数据库并从 Android 应用程序访问它

mysql - PHP MYSQL 1个月后动态增值

sql - 如何选择 COUNT DISTINCT 为 MAX 的行?

database - 为什么 "Conversion from string "ID“to type integer is not valid”显示在我的程序中?