终于知道什么叫做constraint了。

发表于:2007-06-22来源:作者:点击数: 标签:
终于知道什么是constraint了,hoho...偶真是太菜了。 可是只是明白一点点而已,觉得有一点东西把握到了。 其实自己还是不明白,自己学就是很茫然阿。 /primary key /foreign key /not null /unique /check(?) contents: 前几天,偶打算删掉SCOTT.dept的一个

   终于知道什么是constraint了,hoho...偶真是太菜了。
可是只是明白一点点而已,觉得有一点东西把握到了。
其实自己还是不明白,自己学就是很茫然阿。
/primary key
/foreign key
/not null
/unique

/check(?)




contents:

前几天,偶打算删掉SCOTT.dept的一个叫做PK_DEPT的index.
却得到如下错误:

ERROR 位于第 1 行:
ORA-02429: cannot drop index used for enforcement of unique/primary key

好,那就就先删了主键

SQL> select OWNER,CONSTRAINT_NAME,TABLE_NAME from user_constraints;
OWNER                                                        CONSTRAINT_NAME                                      TABLE_NAME
------------------------------------------------------------ ------------------------------------------------------------ ----
SCOTT                                                        PK_DEPT                                              DEPT
SCOTT                                                        PK_EMP                                               EMP
SCOTT                                                        FK_DEPTNO                                            EMP

SQL> alter table dept drop constraints pk_dept;

又是错误

ERROR 位于第 1 行:
ORA-02273: this unique/primary key is referenced by some foreign keys

Foreign keys?什么咚咚?
原来这个东西是联系Dept表跟Emp表的一个约束条件,它把dept的deptno跟emp的deptno联系起来了。
/*这个是很重要的一个概念,一个功能,可我现在还不能理解*/

好,那就把这个Foreign key干掉,这个Foreign key是在emp表上作的,所以需要改动emp先。

SQL> alter table emp drop constraints fk_deptno;

再删主键

SQL> alter table dept drop constraints pk_dept;

搞定。

原文转自:http://www.ltesting.net