gpt4 book ai didi

MySQL触发器将数据插入不同的DB

转载 作者:行者123 更新时间:2023-11-29 14:45:05 24 4
gpt4 key购买 nike

听起来很简单...我花了几个小时才让第一部分工作,这是一个到不同数据库的 mysql 触发器。现在我想变得聪明并加入几张 table 。

我有两个主表 PROJ 和 COMP。两者共享id。插入 PROJ 时,我想将一些 NEW.PROJ 信息和一些 COMP 信息插入到 db.table axis.axis_data 中的一行中

有人可以帮我做一个SELECT...INSERT吗?用触发器。我可能对这个有点不知所措

我的工作触发器。

DELIMITER $$

DROP TRIGGER IF EXISTS `rate_data_trigger` $$

CREATE TRIGGER rate_data_trigger
BEFORE INSERT on PROJ FOR EACH ROW
BEGIN

INSERT INTO axis.axis_data
(projinfo_table_id, rate_user, name,
property_owner, property_address, property_city,
property_state, property_zip, property_phone,
rating_date, rating_type, rating_reason, rating_number
)

VALUES
(NEW.id, user(), NEW.BLGNAME,
NEW.POWNER, NEW.STREET, NEW.CITY,
NEW.STATE, NEW.ZIP, NEW.PHONE,
NEW.RATDATE, NEW.RATTYPE, NEW.RATREAS, NEW.RATNGNO
);
END$$
DELIMITER ;

最佳答案

只需在 select 语句中使用以下语法:

INSERT INTO axis.axis_data
(projinfo_table_id, rate_user, name,
property_owner, property_address, property_city,
property_state, property_zip, property_phone,
rating_date, rating_type, rating_reason, rating_number,
field1, field2
)

SELECT NEW.id, user(), NEW.BLGNAME,
NEW.POWNER, NEW.STREET, NEW.CITY,
NEW.STATE, NEW.ZIP, NEW.PHONE,
NEW.RATDATE, NEW.RATTYPE, NEW.RATREAS, NEW.RATNGNO,
c.field1, c.field2
FROM COMP c WHERE c.id = NEW.id

如果 COMP 在 PROJ 中并不总是有相应的记录,您可以使用 SELECT ... FROM DUAL LEFT JOIN COMP c ON c.id = NEW.id

关于MySQL触发器将数据插入不同的DB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7128173/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com