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

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

我正试图找到一种方法来自动化我的mysql数据库

数据库有几个表。表日志包含来自多个设备(设备id、时间、日志)的原始日志数据,tabele设备包含由其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
这可能不是最好的方法,但对我来说,效果很好:)