试验环境:

1)数据库版本:oracle 11.2.0.4

2)建表脚本:以scott的dept及emp表为基础。

父表:dept

-- Create table

create table DEPT

(

DEPTNO NUMBER(2) not null,

DNAME VARCHAR2(14),

LOC VARCHAR2(13)

)

-- Create/Recreate primary, unique and foreign key constraints

alter table DEPT

add constraint PK_DEPT primary key (DEPTNO)

using index;

子表emp:

-- Create table

create table EMP

(

EMPNO NUMBER(4) not null,

ENAME VARCHAR2(10),

JOB VARCHAR2(9),

MGR NUMBER(4),

HIREDATE DATE,

SAL NUMBER(7,2),

COMM NUMBER(7,2),

DEPTNO NUMBER(2)

)

-- Create/Recreate primary, unique and foreign key constraints

alter table EMP

add constraint PK_EMP primary key (EMPNO)

using index ;

alter table EMP

add constraint FK_DEPTNO foreign key (DEPTNO)

references DEPT (DEPTNO);

一、主-外键约束FK

主-外键约束指的是子表的某一字段的内容取值范围必须由主表指定。

1)创建2张测试表:

create table f1 as select * from dept;

create table s1 as select * from emp;

说明:目前仅仅是复制了表结构及数据,未建立任何约束。

2)在未给f1.deptno创建主键或唯一约束,首选为s1.deptno创建外键:

SQL> alter table S1 add constraint FK_DEPTNO_S1 foreign key (DEPTNO) references F1 (DEPTNO);

alter table S1 add constraint FK_DEPTNO_S1 foreign key (DEPTNO) references F1 (DEPTNO)

*

ERROR at line 1:

ORA-02270: no matching unique or primary key for this column-list

结论:在子表中设置的与父表关联的外键字段时,这个字段在父表中必须具有主键约束或唯一约束才可以设置成功。否则无法设置外键约束。

3)首先为F1.DEPTNO创建主键约束,然后再在S1.DEPTNO设置依赖于F1的外键,即可创建成功。

SQL> alter table F1 add constraint PK_F1 primary key (DEPTNO);

Table altered.

SQL> alter table S1 add constraint FK_DEPTNO_S1 foreign key (DEPTNO) references F1 (DEPTNO);

Table altered.

4)删除F1的约束pk_f1:

SQL> alter table f1 drop constraint pk_f1;

alter table f1 drop constraint pk_f1

*

ERROR at line 1:

ORA-02273: this unique/primary key is referenced by some foreign keys

结论:若想删除被外键依赖的主键信息时,需要首先删除与其关联的外键,然后再删除主键:

SQL> alter table s1 drop constraint fk_deptno_s1;

Table altered.

SQL> alter table f1 drop constraint pk_f1;

Table altered.

5)首先为F1.DEPTNO创建唯一约束,然后再在S1.DEPTNO设置依赖于F1的外键,即可创建成功。

SQL> alter table F1 add constraint UK_F1 unique(deptno);

Table altered.

SQL> alter table S1 add constraint FK_DEPTNO_S1 foreign key (DEPTNO) references F1 (DEPTNO);

Table altered.

6)与步骤4相同:

SQL> alter table f1 drop constraint uk_f1;

alter table f1 drop constraint uk_f1

*

ERROR at line 1:

ORA-02273: this unique/primary key is referenced by some foreign keys

7)总结:外键依赖于父表字段的主键约束或唯一约束,有外键约束时,如果想删除主键或唯一约束需要先删除其外键约束。

8)针对于父表的delete或drop操作,如存在依赖关系需要首先处理子表数据,然后再处理父表数据。

9)针对于对父表的delete操作,外键设置on delete cascade:

create table f1 as select * from dept;

create table s1 as select * from emp;

alter table F1 add constraint PK_F1 primary key (DEPTNO)

alter table S1 add constraint FK_DEPTNO_S1 foreign key (DEPTNO) references F1 (DEPTNO) on delete cascade;

查询现在F1和S1表的数据:

SQL> select * from f1;

DEPTNO DNAME LOC

---------- ------------------------------------------ ---------------------------------------

10 ACCOUNTING NEW YORK

20 RESEARCH DALLAS

30 SALES CHICAGO

40 OPERATIONS BOSTON

SQL> select * from s1;

EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO

---------- ------------------------------ --------------------------- ---------- ------------------- ---------- ---------- ----------

7369 SMITH CLERK 7902 1980/12/17 00:00:00 800 20

7499 ALLEN SALESMAN 7698 1981/02/20 00:00:00 1600 300 30

7521 WARD SALESMAN 7698 1981/02/22 00:00:00 1250 500 30

7566 JONES MANAGER 7839 1981/04/02 00:00:00 2975 20

7654 MARTIN SALESMAN 7698 1981/09/28 00:00:00 1250 1400 30

7698 BLAKE MANAGER 7839 1981/05/01 00:00:00 2850 30

7782 CLARK MANAGER 7839 1981/06/09 00:00:00 2450 10

7788 SCOTT ANALYST 7566 1987/04/19 00:00:00 3000 20

7839 KING PRESIDENT 1981/11/17 00:00:00 5000 10

7844 TURNER SALESMAN 7698 1981/09/08 00:00:00 1500 0 30

7876 ADAMS CLERK 7788 1987/05/23 00:00:00 1100 20

7900 JAMES CLERK 7698 1981/12/03 00:00:00 950 30

7902 FORD ANALYST 7566 1981/12/03 00:00:00 3000 20

7934 MILLER CLERK 7782 1982/01/23 00:00:00 1300 10

14 rows selected.

删除F1表中10部门数据:

SQL> delete from f1 where deptno=10;

1 row deleted.

SQL> select * from f1;

DEPTNO DNAME LOC

---------- ------------------------------------------ ---------------------------------------

20 RESEARCH DALLAS

30 SALES CHICAGO

40 OPERATIONS BOSTON

SQL> select * from s1;

EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO

---------- ------------------------------ --------------------------- ---------- ------------------- ---------- ---------- ----------

7369 SMITH CLERK 7902 1980/12/17 00:00:00 800 20

7499 ALLEN SALESMAN 7698 1981/02/20 00:00:00 1600 300 30

7521 WARD SALESMAN 7698 1981/02/22 00:00:00 1250 500 30

7566 JONES MANAGER 7839 1981/04/02 00:00:00 2975 20

7654 MARTIN SALESMAN 7698 1981/09/28 00:00:00 1250 1400 30

7698 BLAKE MANAGER 7839 1981/05/01 00:00:00 2850 30

7788 SCOTT ANALYST 7566 1987/04/19 00:00:00 3000 20

7844 TURNER SALESMAN 7698 1981/09/08 00:00:00 1500 0 30

7876 ADAMS CLERK 7788 1987/05/23 00:00:00 1100 20

7900 JAMES CLERK 7698 1981/12/03 00:00:00 950 30

7902 FORD ANALYST 7566 1981/12/03 00:00:00 3000 20

11 rows selected.

SQL> commit;

Commit complete.

结论:在外键中使用on delete cascade时,删除父表的数据时会同时删除与父表数据相关联的子表数据。

10)针对于对父表的delete操作,外键设置on delete set null:

create table f1 as select * from dept;

create table s1 as select * from emp;

alter table F1 add constraint PK_F1 primary key (DEPTNO);

alter table S1 add constraint FK_DEPTNO_S1 foreign key (DEPTNO) references F1 (DEPTNO) on delete set null;

查询F1和S1现在数据:

SQL> select * from f1;

DEPTNO DNAME LOC

---------- ------------------------------------------ ---------------------------------------

10 ACCOUNTING NEW YORK

20 RESEARCH DALLAS

30 SALES CHICAGO

40 OPERATIONS BOSTON

SQL> select * from s1;

EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO

---------- ------------------------------ --------------------------- ---------- ------------------- ---------- ---------- ----------

7369 SMITH CLERK 7902 1980/12/17 00:00:00 800 20

7499 ALLEN SALESMAN 7698 1981/02/20 00:00:00 1600 300 30

7521 WARD SALESMAN 7698 1981/02/22 00:00:00 1250 500 30

7566 JONES MANAGER 7839 1981/04/02 00:00:00 2975 20

7654 MARTIN SALESMAN 7698 1981/09/28 00:00:00 1250 1400 30

7698 BLAKE MANAGER 7839 1981/05/01 00:00:00 2850 30

7782 CLARK MANAGER 7839 1981/06/09 00:00:00 2450 10

7788 SCOTT ANALYST 7566 1987/04/19 00:00:00 3000 20

7839 KING PRESIDENT 1981/11/17 00:00:00 5000 10

7844 TURNER SALESMAN 7698 1981/09/08 00:00:00 1500 0 30

7876 ADAMS CLERK 7788 1987/05/23 00:00:00 1100 20

7900 JAMES CLERK 7698 1981/12/03 00:00:00 950 30

7902 FORD ANALYST 7566 1981/12/03 00:00:00 3000 20

7934 MILLER CLERK 7782 1982/01/23 00:00:00 1300 10

14 rows selected.

删除F1表中10部门的数据:

SQL> delete from f1 where deptno=10;

1 row deleted.

SQL> select * from f1;

DEPTNO DNAME LOC

---------- ------------------------------------------ ---------------------------------------

20 RESEARCH DALLAS

30 SALES CHICAGO

40 OPERATIONS BOSTON

SQL> select * from s1;

EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO

---------- ------------------------------ --------------------------- ---------- ------------------- ---------- ---------- ----------

7369 SMITH CLERK 7902 1980/12/17 00:00:00 800 20

7499 ALLEN SALESMAN 7698 1981/02/20 00:00:00 1600 300 30

7521 WARD SALESMAN 7698 1981/02/22 00:00:00 1250 500 30

7566 JONES MANAGER 7839 1981/04/02 00:00:00 2975 20

7654 MARTIN SALESMAN 7698 1981/09/28 00:00:00 1250 1400 30

7698 BLAKE MANAGER 7839 1981/05/01 00:00:00 2850 30

7782 CLARK MANAGER 7839 1981/06/09 00:00:00 2450

7788 SCOTT ANALYST 7566 1987/04/19 00:00:00 3000 20

7839 KING PRESIDENT 1981/11/17 00:00:00 5000

7844 TURNER SALESMAN 7698 1981/09/08 00:00:00 1500 0 30

7876 ADAMS CLERK 7788 1987/05/23 00:00:00 1100 20

7900 JAMES CLERK 7698 1981/12/03 00:00:00 950 30

7902 FORD ANALYST 7566 1981/12/03 00:00:00 3000 20

7934 MILLER CLERK 7782 1982/01/23 00:00:00 1300

14 rows selected.

SQL> commit;

Commit complete.

结论:在外键关联中使用on delete set null时,删除父表数据并不会同时删除与之关联的子表数据,而是将外键关联字段自动修改成null。

11)外键管理存在时,drop父表操作:

create table f1 as select * from dept;

create table s1 as select * from emp;

alter table F1 add constraint PK_F1 primary key (DEPTNO);

alter table S1 add constraint FK_DEPTNO_S1 foreign key (DEPTNO) references F1 (DEPTNO);

SQL> select TABLE_NAME,CONSTRAINT_NAME,CONSTRAINT_TYPE from user_constraints where table_name in ('S1','F1');

TABLE_NAME CONSTRAINT_NAME CONSTRAINT

---------- -------------------- ----------

F1 PK_F1 P

S1 FK_DEPTNO_S1 R

删除F1表:

SQL> drop table F1;

drop table F1

*

ERROR at line 1:

ORA-02449: unique/primary keys in table referenced by foreign keys

SQL> drop table f1 cascade constraint;

Table dropped.

SQL> select TABLE_NAME,CONSTRAINT_NAME,CONSTRAINT_TYPE from user_constraints where table_name in ('S1','F1');

no rows selected

SQL> select * from tab where tname='S1';

TNAME TABTYPE CLUSTERID

------------------------------------------------------------------------------------------

S1 TABLE

结论:在drop父表时,如果使用cascade constraint时,会删除父表同时删除子表的外键约束信息,但是不会删除子表信息。

二、修改约束

1、为表add约束:

>语法:alter table table_name add constraint

创建测试表:

create table f1 as select * from dept;

create table s1 as select * from emp;

alter table F1 add constraint PK_F1 primary key (DEPTNO);

SQL> select TABLE_NAME,CONSTRAINT_NAME,CONSTRAINT_TYPE from user_constraints where table_name in ('S1');

no rows selected

此时S1表没有任何字段。

1)为表S1.EMP添加主键约束:

SQL> alter table s1 add constraint pk_s1 primary key (empno);

Table altered.

SQL> select TABLE_NAME,CONSTRAINT_NAME,CONSTRAINT_TYPE from user_constraints where table_name in ('S1');

TABLE_NAME CONSTRAINT_NAME CONSTRAINT

---------- -------------------- ----------

S1 PK_S1 P

2)为表S1.SAL增加检查约束:在表中add约束时首先要保证已有数据没有违反约束。

SQL> alter table s1 add constraint ck_s1 check(sal > 100);

Table altered.

SQL> select TABLE_NAME,CONSTRAINT_NAME,CONSTRAINT_TYPE from user_constraints where table_name in ('S1');

TABLE_NAME CONSTRAINT_NAME CONSTRAINT

---------- -------------------- ----------

S1 CK_S1 C

S1 PK_S1 P

3)增加外键约束:

SQL> alter table s1 add constraint fk_s1 foreign key(deptno) references f1(deptno);

Table altered.

SQL> select TABLE_NAME,CONSTRAINT_NAME,CONSTRAINT_TYPE from user_constraints where table_name in ('S1');

TABLE_NAME CONSTRAINT_NAME CONSTRAINT

---------- -------------------- ----------

S1 CK_S1 C

S1 FK_S1 R

S1 PK_S1 P

4)增加唯一约束:

SQL> alter table s1 add constraint uk_s1 unique(ename);

Table altered.

SQL> select TABLE_NAME,CONSTRAINT_NAME,CONSTRAINT_TYPE from user_constraints where table_name in ('S1');

TABLE_NAME CONSTRAINT_NAME CONSTRAINT

---------- -------------------- ----------

S1 CK_S1 C

S1 FK_S1 R

S1 UK_S1 U

S1 PK_S1 P

5)增加非空约束:不能通过alter table table_name add constraint命令添加,只能通过修改表的方式增加:

SQL> alter table s1 modify(SAL NUMBER(7,2) not null);

Table altered.

create table S1

(

EMPNO NUMBER(4) not null,

ENAME VARCHAR2(10),

JOB VARCHAR2(9),

MGR NUMBER(4),

HIREDATE DATE,

SAL NUMBER(7,2) not null,

COMM NUMBER(7,2),

DEPTNO NUMBER(2)

)

2、启用/禁用约束

>禁用约束语法:alter table table_name disable constraint cons_name [cascade];

>启用约束语法:alter table table_name enable constraint cons_name;

1)禁用表S1的约束

SQL> select TABLE_NAME,CONSTRAINT_NAME,CONSTRAINT_TYPE,STATUS from user_constraints where table_name in ('S1');

TABLE_NAME CONSTRAINT_NAME CONSTRAINT STATUS

---------- -------------------- ---------- ------------------------

S1 CK_S1 C ENABLED

S1 FK_S1 R ENABLED

S1 UK_S1 U ENABLED

S1 PK_S1 P ENABLED

SQL> ALTER TABLE S1 DISABLE CONSTRAINT CK_S1;

Table altered.

SQL> ALTER TABLE S1 DISABLE CONSTRAINT UK_S1;

Table altered.

SQL> ALTER TABLE S1 DISABLE CONSTRAINT PK_S1;

Table altered.

SQL> ALTER TABLE S1 DISABLE CONSTRAINT FK_S1;

Table altered.

SQL> select TABLE_NAME,CONSTRAINT_NAME,CONSTRAINT_TYPE,STATUS from user_constraints where table_name in ('S1');

TABLE_NAME CONSTRAINT_NAME CONSTRAINT STATUS

---------- -------------------- ---------- ------------------------

S1 CK_S1 C DISABLED

S1 FK_S1 R DISABLED

S1 UK_S1 U DISABLED

S1 PK_S1 P DISABLED

2)启用表S1约束

SQL> ALTER TABLE S1 ENABLE CONSTRAINT PK_S1;

Table altered.

SQL> ALTER TABLE S1 ENABLE CONSTRAINT CK_S1;

Table altered.

SQL> ALTER TABLE S1 ENABLE CONSTRAINT UK_S1;

Table altered.

SQL> ALTER TABLE S1 ENABLE CONSTRAINT FK_S1;

Table altered.

SQL> select TABLE_NAME,CONSTRAINT_NAME,CONSTRAINT_TYPE,STATUS from user_constraints where table_name in ('S1');

TABLE_NAME CONSTRAINT_NAME CONSTRAINT STATUS

---------- -------------------- ---------- ------------------------

S1 CK_S1 C ENABLED

S1 FK_S1 R ENABLED

S1 UK_S1 U ENABLED

S1 PK_S1 P ENABLED

3)禁用F1表上的pk_f1约束

SQL> select TABLE_NAME,CONSTRAINT_NAME,CONSTRAINT_TYPE,STATUS from user_constraints where table_name in ('S1');

TABLE_NAME CONSTRAINT_NAME CONSTRAINT STATUS

---------- -------------------- ---------- ------------------------

S1 CK_S1 C ENABLED

S1 FK_S1 R ENABLED

S1 UK_S1 U ENABLED

S1 PK_S1 P ENABLED

SQL> select TABLE_NAME,CONSTRAINT_NAME,CONSTRAINT_TYPE,STATUS from user_constraints where table_name in ('F1');

TABLE_NAME CONSTRAINT_NAME CONSTRAINT STATUS

---------- -------------------- ---------- ------------------------

F1 PK_F1 P ENABLED

SQL> ALTER TABLE F1 DISABLE CONSTRAINT PK_F1;

ALTER TABLE F1 DISABLE CONSTRAINT PK_F1

*

ERROR at line 1:

ORA-02297: cannot disable constraint (SCOTT.PK_F1) - dependencies exist

注意:此处因为PK_F1存在外键约束,所以禁止禁用PK_F1约束。

SQL> ALTER TABLE F1 DISABLE CONSTRAINT PK_F1 CASCADE;

Table altered.

SQL> select TABLE_NAME,CONSTRAINT_NAME,CONSTRAINT_TYPE,STATUS from user_constraints where table_name in ('F1');

TABLE_NAME CONSTRAINT_NAME CONSTRAINT STATUS

---------- -------------------- ---------- ------------------------

F1 PK_F1 P DISABLED

SQL> select TABLE_NAME,CONSTRAINT_NAME,CONSTRAINT_TYPE,STATUS from user_constraints where table_name in ('S1');

TABLE_NAME CONSTRAINT_NAME CONSTRAINT STATUS

---------- -------------------- ---------- ------------------------

S1 CK_S1 C ENABLED

S1 FK_S1 R DISABLED

S1 UK_S1 U ENABLED

S1 PK_S1 P ENABLED

注意:禁用父表带有外键的约束时,可以采用cascade方式禁用约束,该方式同时也会禁用掉子表的外键约束。

3、删除约束:

语法:alter table table_name drop constraint cons_name [cascade];

1)删除S1中非外键约束

SQL> select TABLE_NAME,CONSTRAINT_NAME,CONSTRAINT_TYPE,STATUS from user_constraints where table_name in ('S1');

TABLE_NAME CONSTRAINT_NAME CONSTRAINT STATUS

---------- -------------------- ---------- ------------------------

S1 CK_S1 C ENABLED

S1 FK_S1 R ENABLED

S1 UK_S1 U ENABLED

S1 PK_S1 P ENABLED

SQL> select TABLE_NAME,CONSTRAINT_NAME,CONSTRAINT_TYPE,STATUS from user_constraints where table_name in ('F1');

TABLE_NAME CONSTRAINT_NAME CONSTRAINT STATUS

---------- -------------------- ---------- ------------------------

F1 PK_F1 P ENABLED

SQL> ALTER TABLE S1 DROP CONSTRAINT CK_S1;

Table altered.

SQL> ALTER TABLE S1 DROP CONSTRAINT UK_S1;

Table altered.

SQL> ALTER TABLE S1 DROP CONSTRAINT PK_S1;

Table altered.

SQL> select TABLE_NAME,CONSTRAINT_NAME,CONSTRAINT_TYPE,STATUS from user_constraints where table_name in ('S1');

TABLE_NAME CONSTRAINT_NAME CONSTRAINT STATUS

---------- -------------------- ---------- ------------------------

S1 FK_S1 R ENABLED

S1 SYS_C0019909 C ENABLED

2)删除F1表中的pk_f1约束

SQL> select TABLE_NAME,CONSTRAINT_NAME,CONSTRAINT_TYPE,STATUS from user_constraints where table_name in ('S1');

TABLE_NAME CONSTRAINT_NAME CONSTRAINT STATUS

---------- -------------------- ---------- ------------------------

S1 FK_S1 R ENABLED

SQL> select TABLE_NAME,CONSTRAINT_NAME,CONSTRAINT_TYPE,STATUS from user_constraints where table_name in ('F1');

TABLE_NAME CONSTRAINT_NAME CONSTRAINT STATUS

---------- -------------------- ---------- ------------------------

F1 PK_F1 P ENABLED

SQL> ALTER TABLE F1 DROP CONSTRAINT PK_F1;

ALTER TABLE F1 DROP CONSTRAINT PK_F1

*

ERROR at line 1:

ORA-02273: this unique/primary key is referenced by some foreign keys

注意:不允许删除带有外键约束的主表约束。

SQL> ALTER TABLE F1 DROP CONSTRAINT PK_F1 CASCADE;

Table altered.

SQL> select TABLE_NAME,CONSTRAINT_NAME,CONSTRAINT_TYPE,STATUS from user_constraints where table_name in ('F1');

no rows selected

SQL> select TABLE_NAME,CONSTRAINT_NAME,CONSTRAINT_TYPE,STATUS from user_constraints where table_name in ('S1');

TABLE_NAME CONSTRAINT_NAME CONSTRAINT STATUS

---------- -------------------- ---------- ------------------------

no rows selected

注意:cascade删除父表约束时,会同时删除子表约束。

三、查看约束信息:

通过user_constraint和user_cons_columns字典表查询约束信息,同时也以次字典表为基础编写约束日常监控脚本:

>CONSTRAINT_TYPE类型:P、R、C、C(not null)、Q

SQL> select TABLE_NAME,CONSTRAINT_NAME,CONSTRAINT_TYPE,STATUS from user_constraints where table_name in ('EMP');

TABLE_NAME CONSTRAINT_NAME CONSTRAINT STATUS

---------- -------------------- ---------- ------------------------

EMP PK_EMP P ENABLED

EMP FK_DEPTNO R ENABLED

SQL> select TABLE_NAME,CONSTRAINT_NAME,CONSTRAINT_TYPE,STATUS from user_constraints where table_name in ('DEPT');

TABLE_NAME CONSTRAINT_NAME CONSTRAINT STATUS

---------- -------------------- ---------- ------------------------

DEPT PK_DEPT P ENABLED

Oracle开发 之 主-外键约束FK及约束的修改相关推荐

  1. mysql 删除表数据_主外键关联表的数据删除策略

    说个题外话,我从来没想过会被拼多多这款软件所魔怔,他的这种社交营销的能力,实在是太强了,在怂恿之下,开始给儿子拼个这个, 各位有空帮砍下,https://w.url.cn/s/AzlPAB9,或者扫下 ...

  2. oracle查看外键约束哪个字段,oracle 查看主外键约束(转)

    oracle 查看主外键约束(转) 上一篇 / 下一篇  2011-07-05 17:37:49 / 个人分类:数据库 select a.constraint_name, a.table_name, ...

  3. Oracle 主外键约束

    一 主键(Primary Key) 1 一个表只能有一个主键,作为主键的列具有唯一(unique)和非空约束(not null): 2 对列创建了主键约束的同时,会自动对列创建一个索引: 3 创建表时 ...

  4. 【2 - 数据库是如何存储数据的】Sql Server - 郝斌(字段、记录、表;图形化界面及sql语句建表;六种约束;一对一、一对多、多对多、数据库关系图;主外键)

    课程地址:数据库 SQLServer 视频教程全集(99P)| 22 小时从入门到精通_哔哩哔哩_bilibili 目录 数据库是如何解决数据存储问题的 1. 表的相关数据 2. create tab ...

  5. MySQL 主外键约束与标准SQL不同的地方

    [标准SQL的外键约束条件] 1): 子表引用父表的主键 drop table if exists child,parent;create table if not exists parent(id ...

  6. templet 显示字段外键对应名_主外键和外键约束

    主外键和外键约束 主键 主键(primary key):一列(或一组列),其值能够唯一区分表中每个行 . 外键 外键(foreign key) 外键为某个表中的一列,它包含另一个表的主键值,定义了两个 ...

  7. sql向数据库表中插入列,sql给表的列添加说明,sql添加主外键约束,增加列,增加字段

    规则代码 use 数据库名--向表中插入列alter table 表名 add 列名 类型go--给表的列添加说明 execute sp_addextendedproperty 'MS_Descrip ...

  8. restrict 外键约束_主外键和外键约束

    主外键和外键约束 主键 主键(primary key):一列(或一组列),其值能够唯一区分表中每个行 . 外键 外键(foreign key) 外键为某个表中的一列,它包含另一个表的主键值,定义了两个 ...

  9. Sqlserver 主外键约束

    Sqlserver 高级基础 约束整理 上一篇 主外键约束 主外键约束 的目的 我感觉最有用的还是 级联删除 主键删除了  子键所有数据都被删除 设置 俩个表 一个TJ表  一个TS表 TS 为主表 ...

  10. 使用Entity Framework和WCF Ria Services开发SilverLight之4:Map之主外键映射

    上一篇粗粗讲了一下如何使用EF4.1,针对POCO进行MAP,此篇在此基础上进行一下深入,具体讲一下如何进行映射.   1:主外键中的1对多映射 还是针对School数据库.查看如下两个表: 可以知道 ...

最新文章

  1. Python使用matplotlib可视化华夫饼图(Waffle Chart) 、华夫饼图可以直观地显示完成度(百分比)或者部分占整体的比例、从不同的分类变量来可视化华夫饼图(Waffle Chart
  2. You are my brother
  3. 使用Eclipse EE(汉化版) 创建一个JavaWeb工程
  4. JavaScript基础一
  5. php博客详情页怎么做,简书仿站报告(四):如何制作文章详情页
  6. 系统幂等性设计与实践
  7. 工作总结14:路径错误
  8. IT程序人生:学会写程序能从事哪些技术岗位?
  9. java年轻代频繁gc_年轻代频繁ParNew GC,导致http服务rt飙高
  10. 128.3. Example 配置实例
  11. Java编程:获取输入的三种方法
  12. 记录下关于qt使用windeployqt.exe打包程序之后运行报错无法定位程序输入点
  13. 2020华为软挑成渝赛区初赛复赛方案分享
  14. java ipa签名_iOS苹果应用IPA一键签名工具及重签教程
  15. 《北京市住房租赁条例》
  16. 如何从CDN加载jQuery
  17. 兔子繁殖问题Java实现
  18. 【转载】C#中List集合First和FirstOrDefault方法有何不同
  19. 回答朋友关于微信CRM系统如何使用的问题
  20. BootStrap表格详解

热门文章

  1. 进一步限塑!洲际酒店集团与联合利华达成合作,旗下酒店将提供大瓶装洗护用品替换一次性小包装 | 美通社头条...
  2. UDE2021未来生活领袖峰会:视像行业发展趋势研究报告发布
  3. 一条机器“龙”,堪称史上最快异形机器人!
  4. php 支持zip解压缩,PHP自带ZIP压缩、解压缩类ZipArchiv使用指南
  5. PCB焊接——原理篇
  6. quantization 顶会文章简介 2017
  7. Circuit Design 三极管驱动蜂鸣器电路 及 蜂鸣器两端电压正确但是不响的解决方案
  8. AutoCAD2014下载和安装教程(官方中文完整版)
  9. 看山聊Java:Date 与 LocalDate 或 LocalDateTime 互相转换
  10. php手机验证码开发,php网站、手机验证码开发(手机注册验证)