sql server中的外码和级联
来源:互联网 发布:宏图高科股票,知乎 编辑:程序博客网 时间:2024/06/02 03:26
sql server中的外码和级联
问题
定义了三个表GOODS、PLAZA、SALE,其中SALE表的主码为外码参考GOODS表和PLAZA的主码。
create table GOODS( GNAME char(20) primary key, GTYPE char(10));create table PLAZA( PNAME char(20) primary key, PAREA char(20));create table SALE( GNAME char(20), PNAME char(20), PRICE FLOAT, ATYPE int, primary key(GNAME,PNAME), foreign key (GNAME) references GOODS(GNAME) , foreign key (PNAME) references PLAZA(PNAME) )
插入表格后,如果删除GOODS或者PLAZA中的数据的话,会出现无法删除的情况,是因为在定义外码时,没有定义级联约束。
解决办法
1.重新定义表
重新定义表,在创建表时加入约束。但这样会导致前面导入的数据丢失,记得做好备份。
先删除先前定义的三个表,加入如下代码
create table GOODS( GNAME char(20) primary key, GTYPE char(10));create table PLAZA( PNAME char(20) primary key, PAREA char(20));create table SALE( GNAME char(20), PNAME char(20), PRICE FLOAT, ATYPE int, primary key(GNAME,PNAME), foreign key (GNAME) references GOODS(GNAME) on delete cascade, foreign key (PNAME) references PLAZA(PNAME) on delete cascade)
2.加入新的约束
在sql server中,对已经生成的的表有添加新的约束的定义。因此,可以不必删除原来的表,只是进行新的约束的定义。
新的约束的名称分别为SALE_GNAME_REFERENCES_GOODS_GNAME和SALE_PNAME_REFERENCES_PLAZA_PNAME
add constraint SALE_GNAME_REFERENCES_GOODS_GNAME foreign key (GNAME) references GOODS(GNAME) on delete cascade;add constraint SALE_PNAME_REFERENCES_PLAZA_PNAME foreign key (PNAME) references PLAZA(PNAME) on delete cascade;
结束
0 0
- sql server中的外码和级联
- SQL SERVER 主键和外键中的 级联删除(ON DELETE CASCADE)和级联更新(ON UPDATE CASCADE)
- SQL SERVER 主键和外键中的 级联删除(ON DELETE CASCADE)和级联更新(ON UPDATE CASCADE)
- 对Sql Server中的表添加级联更新和级联删除
- 对Sql Server中的表添加级联更新和级联删除的几种方法
- 对Sql Server中的表添加级联更新和级联删除的几种方法
- Sql Server级联操作
- Sql Server级联操作
- SQL Server 中的''和' '
- SQL Server 批量更新和级联删除(批量删除)
- sql server 2005 级联删除
- sql server的级联更新
- 数据库SQL Server 2005 的级联设置 外键赋值
- SQL级联更新和级联删除
- SQL级联更新和级联删除
- sql 添加级联删除和级联更新
- SQL与Oracle数据库外键约束中的级联删除
- SQL Server 级联删除 ON DELETE CASCADE
- Android中资源文件夹res/raw和assets的使用
- 类型转换
- python pyodbc文档翻译
- 74. Search a 2D Matrix
- 单链表的各项操作
- sql server中的外码和级联
- Intent.ACTION_PICK
- C/C++ 堆与栈的区别
- [AD资料] AD入门之AD10软件安装
- android ----eclipse --clean
- Android中3种方法实现back键动作
- androidtudtio 安装genymotion插件
- oracle 添加服务
- Android开发艺术探索 第十章 学习