我正在试图找到一种自动化我的mysql数据库的方法。
数据库有几个表。表日志包含来自多个设备的原始日志数据(device_id,time,logs),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而其他列是空白的。
答案 0 :(得分:0)
自己找到解决方案:
CREATE TRIGGER logs_after_insert AFTER INSERT ON logs
FOR EACH ROW
BEGIN
INSERT IGNORE INTO devices (device_id) VALUES (NEW.id);
END
可能不是最好的方法,但就我的情况而言,它的工作正常:)