【发布时间】:2011-04-26 12:06:12
【问题描述】:
我有组,每个组都有与之关联的联系人。当用户删除一个组时,如果该组不为空,那么它会提醒他们如果继续删除该组中的所有联系人。无论如何,所以我的问题是设置该功能。
我试图弄清楚如何删除属于该组的所有联系人并同时删除该组。
在我继续之前,我想知道是否有一种通过外键自动执行此操作的方法?
如果不正常,这是我的查询,但 SQL Workbench 抛出以下错误
DELETE c
FROM `list_`.`contacts` AS c
INNER JOIN `list_`.`groups` AS g ON c.group_id = g.id
WHERE g.group = 'School'
AND c.user_id = 2;
错误:
Error Code: 1046 No database selected
这里真的很迷茫,我也试过c.*
【问题讨论】:
-
您可能正在寻找级联删除(
on delete) -
你试过
DELETE FROM ...吗? -
CREATE TABLE 联系人(ID SMALLINT UNSIGNED NOT NULL PRIMARY KEY,描述 VARCHAR(40),外键 (group_id) REFERENCES groups (id) ON DELETE CASCADE ON UPDATE CASCADE);
-
那么当我从联系人表中删除一行时会发生什么?
标签: sql mysql mysql-error-1046