mysql - 错误 1093,但子查询中没有选择
问题描述
我正在创建一个简单的过程来从表中删除一行tbGame
,但是当我尝试调用 proc 它返回error 1093
我试图通过使用普通命令()删除该行来弄清楚发生了什么,DELETE FROM <table>
但它没有用。经过一番研究,我发现这个错误通常发生SELECT
在子查询中有a时,但程序没有,我也尝试关闭derived_merge
但它也不起作用,最后我创建了另一个数据库并尝试了相同的程序并且它有效,所以我认为问题不在我的程序中。
---turning off derived_merge
SET @@optimizer_switch='derived_merge=OFF';
-- that´s the procedure
DELIMITER //
CREATE PROCEDURE sp_DeleteGame (in _idGame int)
begin
delete from tbGame where idGame = _idGame;
end //
DELIMITER ;
-- that´s the normal delete command that I used
DELETE FROM tbGame WHERE idGame = 1;
在这两种情况下,Mysql 都会返回:
'Error Code: 1093. You can't specify target table 'tbGame' for update in FROM clause'
解决方案
推荐阅读
- docker - “docker stats”命令显示 CPU 超过 100%
- javascript - 链接的 DateTimepickers 不应允许某些日期
- tfs - 如何将 TFS 旧版本的 SSIS 包更新到当前部署的版本?
- wordpress - 如何将我网站的每个帖子自动重定向到移动设备上的 AMP 版本?
- google-chrome-app - 无法支付 chrome 网上商店的注册费
- laravel - 如何在 Vuejs 中单击图像 ID
- java - 在 Excel 工作表的列末尾写入 excel 数据
- bluetooth-lowenergy - 尽管我已配对,但 BLE 属性需要身份验证
- azure - 更改为不同的 Azure 订阅时,Azure PowerShell 脚本不起作用
- excel - Excel:CountIf RangeA 比 Range B 大 n 个单位