mySQL触发器语法-向另一个表添加值
我正试图找到一种方法来自动化我的mysql数据库 数据库有几个表。表日志包含来自多个设备(设备id、时间、日志)的原始日志数据,tabele设备包含由其id标识的特定设备的进一步信息,例如位置、名称和制造商 现在,我想完成以下工作:每当新日志导入到我的日志表中时,我希望数据库自动检查设备id是否已在设备表中注册。如果不是,我希望它被添加 我认为这可以用扳机来完成。经过一些研究,我想出了以下代码,不幸的是我得到了一个1064错误:您的SQL语法有一个错误 有人能帮我吗mySQL触发器语法-向另一个表添加值,mysql,triggers,Mysql,Triggers,我正试图找到一种方法来自动化我的mysql数据库 数据库有几个表。表日志包含来自多个设备(设备id、时间、日志)的原始日志数据,tabele设备包含由其id标识的特定设备的进一步信息,例如位置、名称和制造商 现在,我想完成以下工作:每当新日志导入到我的日志表中时,我希望数据库自动检查设备id是否已在设备表中注册。如果不是,我希望它被添加 我认为这可以用扳机来完成。经过一些研究,我想出了以下代码,不幸的是我得到了一个1064错误:您的SQL语法有一个错误 有人能帮我吗 CREATE TRIGGER
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
这可能不是最好的方法,但对我来说,效果很好:)