mysql - SQL : How to update table Automatically in 2nd database when table in 1st database is updated?

标签 mysql triggers automation

我有数据库db1db2,在同一服务器上的两个数据库上都有表mytable

两个表都包含完全相同的列。

例如:

SNo  |  fname  |   lname  | Mobile | Status

两个表都有一个列名Status

当数据库 db1 的表 mytable 中的 Status 列的值更新时,我应该做什么,然后更新 列的值数据库 db2

中的表 mytable 中的状态 自动更新

我不知道它实际上叫什么。也许触发!

最佳答案

您必须在 Mysql 中创建触发器。

示例:

 CREATE TRIGGER upd_check BEFORE UPDATE ON account
    -> FOR EACH ROW
    -> BEGIN
    ->     IF NEW.amount < 0 THEN
    ->         SET NEW.amount = 0;
    ->     ELSEIF NEW.amount > 100 THEN
    ->         SET NEW.amount = 100;
    ->     END IF;
    -> END;

我正在使用上面的触发器来更新两个表。

看看这个 tutorial

更新

您无法在 SQL 中触发特定列的更新,它会应用于行。

您可以将列的条件放入触发器中,如下所示

DELIMITER $$
CREATE  TRIGGER  myTrigger AFTER UPDATE ON db1.mytable
FOR EACH ROW
BEGIN

if NEW.Status <> OLD.Status
then

update db2.mytable set Status = NEW.Status where sno = OLD.sno;

END if;

END $$

关于mysql - SQL : How to update table Automatically in 2nd database when table in 1st database is updated?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29740881/

相关文章:

java - 谁能推荐一个可编写脚本的 Java 分析器?

php - 在其他页面访问MySQL连接语句

android - 所有 Android Init Language 'triggers' 的列表是什么?

security - 使用 powershell 替换文本

google-apps-script - 无法使用 Apps 脚本在电子表格副本的 onOpen 函数中打开模式对话框

sql-server - Entity Framework ,查看而不是插入触发器。无法在 View 中插入一行

windows - 如何在 Windows 7/8/8.1(尤其是 64 位)上使用未签名的驱动程序

java - 在一对多映射中向数据库添加行(Hibernate/Spring)

MySQL:总 GROUP BY WITH ROLLUP 好奇心

c++ - Qt 程序无法打开我的 MySql 数据库