首页 > 开发 > 综合 > 正文

终于知道什么叫做constraint了。

2024-07-21 02:40:04
字体:
来源:转载
供稿:网友
终于知道什么是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;

搞定。



发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表