我有两张table。一个叫做“借来的”,另一个叫做“设备”。我在devices表中有一个默认设置为0的字段。我想在表中添加一个条目“借用”。表“devices”中的条目被触发器设置为1。表id“借用”的确切位置=表id是“设备”。
我的想法是:
BEGIN
UPDATE `devices`
SET devices.borrowed = "1"
WHERE devices.id = borrowed.id
LIMIT 1;
END
或
DROP TRIGGER IF EXISTS `test`;CREATE DEFINER=`root`@`localhost` TRIGGER `test` AFTER INSERT ON `borrowed` FOR EACH ROW BEGIN UPDATE `devices` SET devices.borrowed = 1 WHERE devices.id = borrowed.id LIMIT 1; END
我的结果是所有记录都设置为1,而不仅仅是具有相同序列号的记录。使用limit命令,他只将1设置为正确值,但序列号错误的设备设置为1。
1条答案
按热度按时间1l5u6lss1#
我猜你正在使用mysql,你想要这样的东西
我不认为触发器是实现这种逻辑的好方法。外键关系和
JOIN
弄清楚哪些设备是借来的应该没问题。如果你需要扳机insert
,你也需要一个delete
以及update
.