我终于可以解决DELETE CASCADE了。对于这些表格。
现在......我需要删除AlergiaTipo上的所有行,这些似乎与ALERGIA桌上的alergiagrupo有关。 我发表了这个声明。
delete from alergiatipo where ID in (select alergiatipo.ID from alergia,alergiatipo where
alergia.AlergiaTipo_ID = alergiatipo.iD and alergia.ID in (select alergia.ID from
alergia,alergiagrupo where alergia.AlergiaGrupo_ID = alergiagrupo.ID AND
alergiagrupo.ID = '2'));
但是回复此错误
Error Code: 1093. You can't specify target table 'alergiatipo' for update in FROM clause
答案 0 :(得分:1)
这是delete
join
具有正确的delete from alergiatipo
where ID in (select alergiatipo.ID
from alergia join
alergiatipo
on alergia.AlergiaTipo_ID = alergiatipo.iD
where alergia.ID in (select alergia.ID
from alergia join
alergiagrupo
on alergia.AlergiaGrupo_ID = alergiagrupo.ID
where alergiagrupo.ID = '2'
)
);
语法:
update
在MySQL中,您无法在delete
或delete alt
from alergiatipo alt join
alergia a
on a.AlergiaTipo_ID = alt.iD join
alergiagrupo ag
on a.AlergiaGrupo_ID = ag.ID
where ag.ID = 2;
的其他位置指定要删除的表格。此外,您的删除相当过度。我想你只想要以下内容:
2
我还删除了{{1}}周围的单引号。我猜这个列是一个整数,所以你应该使用整数常量而不是字符串常量。