gpt4 book ai didi

mySQL 触发器语法 - 向另一个表添加值

转载 作者:行者123 更新时间:2023-11-30 00:47:14 26 4
gpt4 key购买 nike

我正在尝试找出一种方法来自动化我的 mysql 数据库。

数据库有多个表。表日志包含来自多个设备的原始日志数据(device_id、时间、日志),表设备包含由其 id 标识的特定设备的更多信息,例如位置、名称和制造商。

现在我想要完成以下任务:每当新日志导入到我的日志表中时,我希望数据库自动检查设备 ID 是否已在设备表中注册。如果没有,我希望添加它。

我认为这可以通过触发器来完成。经过一番研究,我想出了以下代码,不幸的是我收到了 1064 错误:您的 SQL 语法中有错误...

有人可以帮助我吗?

CREATE TRIGGER logs_after_insert AFTER INSERT ON logs
FOR EACH ROW
BEGIN
DECLARE amount INT;
SET amount = SELECT COUNT (*) FROM `devices` WHERE device_id = NEW.id GROUP BY device_id;
IF (amount = 0) THEN
INSERT INTO devices VALUES (NEW.device_id, , , , , );
END IF;
END

插入查询中的逗号是因为我需要手动向设备填写附加数据,目前我只想添加 ID,其他列为空。

最佳答案

我自己找到了解决方案:

CREATE TRIGGER logs_after_insert AFTER INSERT ON logs
FOR EACH ROW
BEGIN
INSERT IGNORE INTO devices (device_id) VALUES (NEW.id);
END

可能不是最好的方法,但就我而言,它工作得很好:)

关于mySQL 触发器语法 - 向另一个表添加值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21261729/

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