mysql - 触发: DELETED table does not exist

标签 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。

最佳答案

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

完整查询:

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

关于mysql - 触发: DELETED table does not exist,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29641418/

相关文章:

mysql - 在 MySQL 中的一对多关系的情况下获取数据

MySQL:插入不存在的地方

mysql - 无法使用 Servlet 连接到 MySQL 数据库

mysql - 检测两个时间是否冲突/相交

Java MySQL 语法错误异常

java - 如何使用 JDBC 在 MySQL 数据库中保存 html 文件?

mysql - 使用 MySQL Workbench 连接到 Azure MySQL 数据库

mysql - 具有非二进制文件格式的数据库建模软件?

MySQL,比较后递归添加两列

MySQL 工作台 : Generate a bunch of rows?