【问题标题】:How can I update two tables after inserting a row in another table在另一个表中插入一行后如何更新两个表
【发布时间】:2014-02-10 15:10:18
【问题描述】:

在我的服务器上,插入一张表后,我想更新另外两张表。如何使用触发器做到这一点?

表一有两列tab2id,tab3id。

在 tab1 上插入后,我想用 tab2id 更新 tab2 中的行,用 tab3id 更新 tab3 中的行。

【问题讨论】:

  • 为您的问题添加更多含义,给出表格结构,给出您尝试过的示例.. 预期输出
  • 至少发布所有三个表的架构并解释确切应该更新的内容。
  • 您的整个数据库中的某些内容应该有一个值,不应在任何地方重复您的数据。这是一个糟糕的设计。你用什么来更新你的数据库?
  • @dayuloli 在 tab1 上插入后,我想用 tab2id 更新 tab2 中的行,用 tab3id 更新 tab3 中的行。
  • @user2798694 那你能不能把它写在你的 MySQL 查询中?

标签: mysql triggers


【解决方案1】:

很难在表 tab2 和 tab3 中说出您想要更新的确切内容,因为您没有在问题中详细说明,但您的触发器可能看起来像

DELIMITER $$
CREATE TRIGGER tg_ai_tab1
AFTER INSERT ON tab1
FOR EACH ROW
BEGIN
  UPDATE tab2
     SET value2 = value2 + 1
   WHERE tab2id = NEW.tab2id;

  UPDATE tab3
     SET value3 = value3 + 1
   WHERE tab3id = NEW.tab3id;
END$$
DELIMITER ;

这里是SQLFiddle演示

【讨论】:

  • 你先生是个天才,我所缺少的只是开始......谢谢!
【解决方案2】:

我认为您不能使用 1 个 SQL 语句同时插入和执行更新。您需要通过创建单独的 SQL 语句来分隔执行。如果这些信息还不够,请检查一下。它应该可以完全解决您的问题。

ACCESS/SQL: How to INSERT INTO/UPDATE at the same time?

【讨论】:

    猜你喜欢
    • 2018-03-10
    • 2013-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-16
    相关资源
    最近更新 更多