SQL的表如果有外码约束该如何删除表的一条元组

SQL的表如果有外码约束该如何删除表的一条元组createtable仓库(仓库号char(3),城市char(4),面积intcheck(面积>0),primarykey... SQL的表如果有外码约束该如何删除表的一条元组
create table 仓库(仓库号 char(3),
城市 char(4),
面积 int check(面积>0),
primary key(仓库号));
create table 职工
(仓库号 char(3),职工号 char(3),
工资 int default 1200 check(工资>=1000 and 工资<=5000) ,
primary key(职工号),foreign key(仓库号) references 仓库);

删除所在城市是上海仓库的所有职工的元组
delete from 职工
where 仓库号 =(
select 仓库号
from 仓库
where 城市='上海'
)
我这样写报错,说我违反完整约束,那我该怎么写,怎么删除?
各位行行好帮忙写下吧,本人现在身边没有书,不太会写,拜托了
展开
 我来答
落寞的走着
2013-04-20
知道答主
回答量:20
采纳率:0%
帮助的人:18.1万
展开全部
你可以设置级联删除啊,这样的话就不会报错了。
可以在后面加上:
on delete:删除级联
on update:更新级联
更多追问追答
追问
应该怎么写?我现在身边没有书,不会写,麻烦帮忙写下,分不是问题
追答

同意楼上,我试了一遍,是没问题的。

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
szm341
2013-04-20 · TA获得超过6726个赞
知道大有可为答主
回答量:5005
采纳率:100%
帮助的人:5177万
展开全部
两种方案,一种是在创建约束时就指定级联更新级联删除选项,显然你没加
另一种是在删除主表数据时,先删除从表中外键关联的那个值的全部数据,然后再删除主表数据
更多追问追答
追问
应该怎么写?我现在身边没有书,麻烦帮忙写下,分不是问题
追答
刚没仔细看,你这个删除的就是从表数据啊,应该不会报错啊
你把错误贴过来看看
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式