代码先锋网 代码片段及技术文章聚合

Oracle添加主键、删除主键、修改主键

 

目录

一、前提

二、回归主题,主键的添加、删除等操作

1.有命名主键

1)有命名主键的添加

2)有命名主键的删除

3)有命名主键的修改

2.无命名主键

1)无命名主键的创建

2)无命名主键的删除

3)无命名主键的修改

附加:

user_constraints 和user_cons_columns表的作用及其联系 

 

一、前提

主键解释:

       一个表的唯一关键字 比如一个学生表 学号不能重复且唯一 ,学号就是关键字,即为主键。

区别于外键:

       外键就是跟其他表联系的字段 ,还是比如有一张学生表 还有一张选课表,这个时候要修改学生表中的学号 ,选课表里对应的就也得变,这样就需要给选课表加学号作为外键约束,这样当你修改学号时 所有外键关联的就都改了

二、回归主题,主键的添加、删除等操作

1.有命名主键

1)有命名主键的添加

①建表时添加主键(yy为主键“ID”的主键名称)

CREATE TABLE table_test(

id INT NOT NULL,       --注意:主键必须非空

name VARCHAR(20) NOT NULL,

address VARCHAR(20),

constraint yy PRIMARY KEY(id)

);

②建表后添加主键

alter table table_test add constraint yy primary key(id);
公式:alter table 表名 add constraint yy primary key(主键1,主键2);

2)有命名主键的删除

ALTER TABLE table_test DROP CONSTRAINT yy;
公式:ALTER TABLE 表名DROP CONSTRAINT 主键名;

3)有命名主键的修改

需先删除主键,再进行添加

2.无命名主键

1)无命名主键的创建

①建表时添加主键(主键“ID”的主键名称需要查询出来,下文有方法)

CREATE TABLE table_test(

id INT NOT NULL,       --注意:主键必须非空

name VARCHAR(20) NOT NULL,

address VARCHAR(20),

PRIMARY KEY(id)

);

②建表后添加主键

alter table table_test add primary key (id);
公式:alter table 表名 add primary key(主键字段1,主键字段2...); 

2)无命名主键的删除

①先查出来主键名(constraint_name),user_cons_columns表会在文末给出解释

SELECT t.* from user_cons_columns t where t.table_name  = 'TABLE_TEST' and t.position is not null;
公式:SELECT t.* from user_cons_columns t where t.table_name  = '表名' and t.position is not null;   --表名必须大写,如:TABLE_TEST

②再执行删除的SQL

ALTER TABLE table_test DROP CONSTRAINT SYS_C0056038;  
公式:ALTER TABLE 表名 DROP CONSTRAINT 主键名;

3)无命名主键的修改

需先删除主键,再进行添加

附加:

user_constraints 和user_cons_columns表的作用及其联系 


        user_constraints:是表约束的视图,描述的是约束类型(constraint_type)是什么,属于哪些表(table_name),如果约束的类型为R(外键)的话,那么r_constraint_name字段存放的就是被引用主表中的主键约束名。   
        user_cons_columns:是表约束字段的视图,说明表中的和约束相关的列参与了哪些约束。这些约束有主键约束,外键约束,索引约束.
        两者可以通过(owner,constraint_name,table_name)关联 

 

版权声明:本文为zxljsbk原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/zxljsbk/article/details/88951326

智能推荐

Oracle修改主键约束

  项目需求,有张表,原有三个联合主键,现在需要再加一个字段进去,而恰恰这个字段可以为空的。去数据库捞了一把,还好数据都不为空:   那么我们需要先把这个字段修改为非空字段:   接着才能修改主键约束,约束无法直接修改,只能先删后插:   最后把注释改下:   作为一个专业人员,我们应该把回滚语句也写好:   最后总结下:约束的作用是保证数据的唯一性和完整性,比如主键约束你作为主键的字段不能为空,...

【ORACLE】修改主键

1.删除主键 2.添加主键 主键并不需要知道索引名称就能修改。...

MySQL主键删除/添加

Alter table qa_user add primary key(id); Alter table qa_user change id id int(10) not null auto_increment;    删除 Alter table qa_user change id id int(10);//删除自增长 Alter table qa_user drop primary ...

oracle 删除主键

删除主键一定要一起把索引删除 切记 删除约束 同时删除索引. 添加主键约束,同时加索引...

猜你喜欢

oracle 修改主键,新增字段为主键

1:首先判断主键是否作为其他表的外键,若有,执行语句  drop完所有外键约束后就可以对主键进行修改了  2:删除主键约束  3:新增字段,并将该字段修改为主键  如果被修改表有数据,则会报 ORA-01758: 要添加法定 (NOT NULL) 列,则表必须为空 异常 为了解决改异常,保证数据的完整性,就需要创建临时表,将元数据复制到临时表里面 ...

Oracle 如何删除主键新增主键

Oracle 如何删除主键新增主键 在添加主键前一定要先删除主键约束,否则直接添加会不成功! 如何修改默认值: 如何添加字段...

sql主键删除/sql主键修改

sql主键删除/sql主键修改 1.删除主键 2.创建主键 3.修改主键...

Oracle查看主键、删除主键以及新增联合主键

Oracle查看主键、删除主键以及新增联合主键 主键是用于唯一标识表中的每一条数据的,不能重复也不能为null。一个表中不能有多个独立的主键,但是一个表中可以有联合主键(即多个字段组合)。 一、查看主键 二、删除主键 三、新增联合主键  ...

Pgsql 如何删除、添加主键

e.g. 当前的表中主键设为;corp_id和stuff_qr_code;需要删除这两个主键;并设置id为主键 执行命令...