rw941123 2023-03-22 21:46 采纳率: 80%
浏览 36
已结题

同时修改两个MySQL数据库表

当我修改入库表中的state = 1时,将入库的物资名称、数量及单位存进库存表中。
请问用MySQL触发器的话,应该怎么写呢?
另外,因为我的入库表会比库存表多一些内容,怎么确定存入库存表中的内容是我想要的物资名称、数量、单位而不是别的内容呢

  • 写回答

1条回答 默认 最新

  • Java码库 2023-03-22 21:53
    关注

    可以使用MySQL触发器来实现当state等于1时,将入库的物资名称、数量及单位存进库存表中的操作。 可以使用以下代码来创建触发器:

    CREATE TRIGGER trigger_name AFTER UPDATE ON 入库表
    FOR EACH ROW
    BEGIN
        IF NEW.state = 1 THEN
            INSERT INTO 库存表 (物资名称, 数量, 单位) VALUES (NEW.物资名称, NEW.数量, NEW.单位);
        END IF;
    END
    

    其中,trigger_name是触发器的名称,入库表库存表分别是入库表和库存表的名称。NEW关键字表示新的更新值,OLD关键字表示旧的更新值。

    如果你想确保只有特定的列被存入库存表中,可以在INSERT INTO语句中指定需要的列。例如,如果你只想存储物资名称数量单位列,可以使用以下代码:

    INSERT INTO 库存表 (物资名称, 数量, 单位) VALUES (NEW.物资名称, NEW.数量, NEW.单位);
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 3月31日
  • 已采纳回答 3月23日
  • 创建了问题 3月22日

悬赏问题

  • ¥15 关于大棚监测的pcb板设计
  • ¥15 stm32开发clion时遇到的编译问题
  • ¥15 lna设计 源简并电感型共源放大器
  • ¥15 如何用Labview在myRIO上做LCD显示?(语言-开发语言)
  • ¥15 Vue3地图和异步函数使用
  • ¥15 C++ yoloV5改写遇到的问题
  • ¥20 win11修改中文用户名路径
  • ¥15 win2012磁盘空间不足,c盘正常,d盘无法写入
  • ¥15 用土力学知识进行土坡稳定性分析与挡土墙设计
  • ¥15 帮我写一个c++工程