mysql - 无法更新存储函数/触发器中的表

标签 mysql phpmyadmin

如果玩家 ID 中不存在 OwnerID,我尝试运行此查询来删除公会中的一行。

DELETE FROM guilds WHERE ownerid NOT IN (SELECT id FROM players);

但我收到此错误: 无法更新存储函数/触发器中的表“玩家”,因为它已被调用此存储函数/触发器的语句使用。

我还尝试了 NOT EXISTS AND LEFT JOIN 但我得到了相同的结果。

这种情况我能做什么?提前致谢。

最佳答案

您的查询还删除了players表,实际上删除了所有内容。由于 players 表受到某种保护,因此您会收到该错误,您不需要触摸它,试试这个;

DELETE FROM guilds WHERE ownerid != ALL(SELECT id FROM players);

关于mysql - 无法更新存储函数/触发器中的表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37734623/

相关文章:

php - 我如何判断当前交易是否会改变任何符合 Doctrine 2 的实体?

mysql - MySQL/PHPmyAdmin 中的字符编码不支持波兰语字符

php - 密码不区分大小写

php - 函数参数 php 不工作

将数据插入数据库的 PHP 脚本在执行时返回成功,但记录未插入数据库?

mysql - 在mysql选择查询中需要正则表达式

MYSQL TRIGGER 子查询更新

MySQL百分比

mysql - 替换 mysql 中包含方括号的精确字符串

c#提交到数据库时从字符串中剥离字符