加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Oracle主键约束

发布时间:2020-12-12 14:36:44 所属栏目:百科 来源:网络整理
导读:一 作用 确保表当中每一行数据的唯一性 二 主键特点 非空 唯一 一张表中只能设计一个主键约束 主键约束可以由多个字段构成,这种情况被称为联合主键或复合主键 三 主键约束 1、在创建表时设置主键约束 CREATE TABLE tabl_name( column_name datatype PRIMARY
一 作用 确保表当中每一行数据的唯一性 二 主键特点 非空 唯一 一张表中只能设计一个主键约束 主键约束可以由多个字段构成,这种情况被称为联合主键或复合主键 三 主键约束 1、在创建表时设置主键约束 CREATE TABLE tabl_name( column_name datatype PRIMARY_KEY,... )
  1. SQL> create table userinfo_p
  2. 2(id number(6,0) primary key,
  3. 3 username varchar2(20),
  4. 4 userpwd varchar2(20));
  5. 表已创建。
  6. SQL> desc userinfo_p
  7. 名称是否为空?类型
  8. -----------------------------------------------------------------------------
  9. ID NOT NULL NUMBER(6)
  10. USERNAME VARCHAR2(20)
  11. USERPWD VARCHAR2(20)
CONSTRAINT constraint_name PRIMARY KEY(column_name1,...)
  1. SQL> create table userinfo_p1(
  2. 2 id number(6,0),monospace; margin: 8px 0px;" class="language-sql">4 userpwd varchar2(20),
  3. 5 constraint pk_id_username primary key(id,username));
  4. 表已创建。
  5. SQL> desc userinfo_p1;
  6. 名称是否为空?类型
  7. -----------------------------------------------------------------------------
  8. ID NOT NULL NUMBER(6)
  9. USERNAME NOT NULL VARCHAR2(20)
  10. USERPWD VARCHAR2(20)
  11. SQL> desc user_constraints
  12. 名称是否为空?类型
  13. -----------------------------------------------------------------------------
  14. OWNER VARCHAR2(30)
  15. CONSTRAINT_NAME NOT NULL VARCHAR2(30)
  16. CONSTRAINT_TYPE VARCHAR2(1)
  17. TABLE_NAME NOT NULL VARCHAR2(30)
  18. SEARCH_CONDITION LONG
  19. R_OWNER VARCHAR2(30)
  20. R_CONSTRAINT_NAME VARCHAR2(30)
  21. DELETE_RULE VARCHAR2(9)
  22. STATUS VARCHAR2(8)
  23. DEFERRABLE VARCHAR2(14)
  24. DEFERRED VARCHAR2(9)
  25. VALIDATED VARCHAR2(13)
  26. GENERATED VARCHAR2(14)
  27. BAD VARCHAR2(3)
  28. RELY VARCHAR2(4)
  29. LAST_CHANGE DATE
  30. INDEX_OWNER VARCHAR2(30)
  31. INDEX_NAME VARCHAR2(30)
  32. INVALID VARCHAR2(7)
  33. VIEW_RELATED VARCHAR2(14)
  34. SQL>select constraint_name from user_constraints where table_name='USERINFO_P1';
  35. CONSTRAINT_NAME
  36. ------------------------------
  37. PK_ID_USERNAME
  38. SQL>select constraint_name from user_constraints where table_name='USERINFO_P';
  39. CONSTRAINT_NAME
  40. ------------------------------
  41. SYS_C0011056
2、在修改表时添加主键约束 ADD CONSTRAINT constraint_name PRIMARY KEY(column_name1,...);
  1. SQL> alter table userinfo
  2. 2 add constraint pk_id primary key(id);
  3. 表已更改。
  4. SQL> desc user_constraints
  5. 名称是否为空?类型
  6. -----------------------------------------------------------------------------
  7. OWNER VARCHAR2(30)
  8. CONSTRAINT_NAME NOT NULL VARCHAR2(30)
  9. CONSTRAINT_TYPE VARCHAR2(1)
  10. TABLE_NAME NOT NULL VARCHAR2(30)
  11. SEARCH_CONDITION LONG
  12. R_OWNER VARCHAR2(30)
  13. R_CONSTRAINT_NAME VARCHAR2(30)
  14. DELETE_RULE VARCHAR2(9)
  15. STATUS VARCHAR2(8)
  16. DEFERRABLE VARCHAR2(14)
  17. DEFERRED VARCHAR2(9)
  18. VALIDATED VARCHAR2(13)
  19. GENERATED VARCHAR2(14)
  20. BAD VARCHAR2(3)
  21. RELY VARCHAR2(4)
  22. LAST_CHANGE DATE
  23. INDEX_OWNER VARCHAR2(30)
  24. INDEX_NAME VARCHAR2(30)
  25. INVALID VARCHAR2(7)
  26. VIEW_RELATED VARCHAR2(14)
  27. SQL>select constraint_name from user_constraints where table_name='USERINFO';
  28. CONSTRAINT_NAME
  29. ------------------------------
  30. PK_ID
3、更改约束名称 RENAME CONSTRAINT old_name TO new_name
  1. 2 rename constraint pk_id to new_pk_id;
  2. SQL>select constraint_name from user_constraints where table_name='USERINFO';
  3. CONSTRAINT_NAME
  4. ------------------------------
  5. NEW_PK_ID
4、删除主键约束 DISABLE|ENABLE CONSTRAINT constraint_name
  1. 2 disable constraint new_pk_id;
  2. SQL>select constraint_name,status from user_constraints where table_name='USERINFO';
  3. CONSTRAINT_NAME STATUS
  4. --------------------------------------
  5. NEW_PK_ID DISABLED
DROP CONSTRAINT constraint_name
  1. 2 drop constraint new_pk_id;
  2. 未选定行
DROP PRIMARY KEY[CASCARDE] CASCARDE用于级联删除。
  1. SQL> desc userinfo_p
  2. USERNAME VARCHAR2(20)
  3. USERPWD VARCHAR2(20)
  4. SQL> alter table userinfo_p
  5. 2 drop primary key;
  6. 表已更改。
  7. ID NUMBER(6)
  8. USERPWD VARCHAR2(20)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读