触发:DELETED表不存在

时间:2015-04-15 04:06:27

标签: mysql mysql-workbench

我正在学习SQL触发器,并且已经阅读了一些有关如何删除表a中的行时如何删除表B上的行的教程。

我有以下触发器:

CREATE DEFINER=`root`@`localhost` TRIGGER `testDB`.`test_BEFORE_DELETE` 
BEFORE DELETE ON `testDBtable` FOR EACH ROW
BEGIN
    Delete from testDBtable2 where id = (select id from deleted);
END

testDBtable和testDBtable2都有2列,id和name。

当我从testDB中删除一行时,收到以下错误:

Error Code: 1146. Table 'testDB.deleted' doesn't exist  0.000 sec

我正在使用MYSQLWorkBench。

1 个答案:

答案 0 :(得分:0)

我认为OLD.id是您需要的而不是select id from deleted

完整查询:

CREATE DEFINER=`root`@`localhost` TRIGGER `testDB`.`test_BEFORE_DELETE` 
BEFORE DELETE ON `testDBtable` FOR EACH ROW
BEGIN
    Delete from testDBtable2 where id = OLD.id;
END