mysql - 在 mysql if 语句中使用来自另一个表的列

标签 mysql sql sql-update

我写了一个这样的触发器:

CREATE TRIGGER `update_after_itemPresent` AFTER INSERT ON `bus_repair`
FOR EACH ROW begin
    IF NEW.unit <> `item_present`.`unit` THEN
        update item_present 
        set unit = unit-new.unit 
        where item_present.item_group_id = new.item_group_id;
    END IF;
end

但是当我在 bus_repair 表中插入新行时,它给出了一个错误:

unknown table item_present in field list

知道如何解决这个问题吗?

最佳答案

将您的 UPDATE item_preset 语句移到 IF 上方和 UPDATE 内的 IF 或改写为条件。您需要先更新或选择表 item_present。

关于mysql - 在 mysql if 语句中使用来自另一个表的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12328685/

相关文章:

java - 使用 MySQL 数据库语法错误填充 jTable

mysql - 如何对两个表进行并行连接并按创建日期对结果进行排序?

javascript - 存储为 JSON 的数据的 SQL 查询

mysql - 如何根据单次更新查询的另一列中的值更新一列中的值?

MySQL如何在同一表中仅对一列更新进行时间戳

mysql - 使用 ORDER BY 和 LIMIT MYSQL 更新多个不同的表

java - 使用延迟加载时 Hibernate List 为空,但在热切加载时它有结果

Mysql 发送数据需要更多的时间

java - 如何调试 "com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure"?

sql - 如何在 SQL 中使用 WHERE 条件从下一条记录中获取值?