-
2021-04-30 11:39:15
需求:现在有张表中是联合主键,但是现在要改成只有一个字段是主键。
解决方法:先删除这张表的联合主键,再重新创建这张表的主键,sql测试脚本如下
--创建测试表
create table test_wxh(
t_id number(16) not null,
t_name varchar2(256),
t_my_id number(16) not null
)
--添加联合主键
alter table test_wxh
add constraint PK_test_wxh primary key (t_id, t_my_id);
--表中插入数据
select * from test_wxh for update
--去掉联合主键,再添加一个主键
ALTER TABLE test_wxh drop constraint PK_test_wxh;
--再添加一个主键
alter table test_wxh
add constraint PK_test_wxh primary key (t_id);
更多相关内容 -
oracle删除主键查看主键约束及创建联合主键
2020-09-10 14:04:30本节文章主要介绍了oracle删除主键查看主键约束及创建联合主键,示例代码如下,需要的朋友可以参考下 -
oracle数据库删除联合主键
2021-04-30 11:38:09⑤语法: 1.StudentID int not null primary key 创建学生编号为主键 2.primary key(Students) 创建学生编号为主键 3.primary key(StudentID,Email) 创建学生ID和Email为联合主键 ⑥为已存在的列创建主键 1.alter ...1.not null 非空约束
①强制列不接受空值
②例:创建表时,name varchar(6) not null,
2.unique 唯一性约束
①约束唯一标识数据库表中的每条记录
②unique和primary key都为数据提供了唯一性约束
③primary key 拥有自动定义的Unique约束
④注意:每个表中只能有一个primary key约束,但是可以有多个Unique约束
⑤语法:
1.name int unique
2.unique(column_name)
3.CONSTRAINT uc_PersonID UNIQUE (Id_P,LastName) 添加多个约束
4.alter table table_name add unique(column_name) 增加表中的约束
5.ALTER TABLE table_name DROP CONSTRAINT 主键名 删除约束
3.primary key约束
①约束唯一标识数据库表中的每条记录
②主键必须包含唯一的值
③主键列不能为空
④每个表都应该有个主键,但只能有一个主键
⑤语法:
1.StudentID int not null primary key 创建学生编号为主键
2.primary key(Students) 创建学生编号为主键
3.primary key(StudentID,Email) 创建学生ID和Email为联合主键
⑥为已存在的列创建主键
1.alter table table_name add primary key(column_name)
⑦删除主键约束
1.alter table table_name drop primary key
⑧删除主键约束
1.alter table table_name drop constraint 主键约束名 主键约束名可以使用sp_help查询
4.foreign key约束
①一个表中的foreign key 指向另一个表的primary key
②foreign key约束用于预防破坏表之间连接的动作
③foreign key约束也能防止非法数据插入外键列,因为它必须是指向的那个表的值之一
④语法:
1.foreign key (column_name) references 主表名(主键列名) 创建column_name为主表名的外键
2.column_name int foreign key references 主表名(主键列名) 创建column_name为主表名的外键
3.alter table table_name
add foreign key (列名) references 主表名(主键列名) 为已存在的列创建外键
4.alter table table_name drop constraint 外键约束名 删除外键约束(SQL Server oracle)
5.alter table table_name drop foreign key 外键约束名 删除外键约束(Mysql)
5.check 约束
①check约束用于限制列中的值的范围
②如果对个单个列做check约束,那么该列只可以输入特定数值
③如果一个表定义check约束,那么此约束会在特定的列对值进行限制
④语法:
1.StudentID int not null check (StudentID>0) 限制StudentID输入的值要大于0 (SQL Server oracle)
2.StudentID int not null, 限制StudentID输入的值要大于0 (Mysql)
check (StudentID>0)
3.sex varchar(2) not null check(sex='男' or sex='女') 限制sex的性别只能是男或者女
4.alter table table_name add check(列名>0) 向已有的列加入check约束
5.alter table table_name drop constraint check约束名 删除约束 约束名可以用 sp_help table_name查看
6.default约束
①default约束用于向列中插入默认值
②如果没有规定其他的值,那么会将默认值添加到所有的新记录中
③语法:
1.name varchar(10) default '张三' name默认插入张三的名字
2.systime date default gatedate() 插入时间的默认值 getetime()函数为时间的默认值
3.alter table table_name add 列名 set default '数值' 向已有列名中插入默认值
4.alter table table_name drop constraint 约束名 删除默认约束
*/
————————————————
版权声明:本文为CSDN博主「z120270662」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/z120270662/java/article/details/79501621
-
Oracle数据库联合主键
2021-05-04 05:55:021、定义:主键:在Oracle中,主键指能唯一标识一条记录的单个数据表列或联合的数据表列(联合主键|复合主键)。主键用到的数据 表列数据不能包含空值。而且,一张表只能包含一个主键。2、作用:数据表的联合主键组合不...1、定义:
主键:在Oracle中,主键指能唯一标识一条记录的单个数据表列或联合的数据表列(联合主键|复合主键)。主键用到的数据 表列数据不能包含空值。而且,一张表只能包含一个主键。
2、作用:
数据表的联合主键组合不允许重复,即同一行的数据,联合主键所属的列数据组合不能相同。
用来通过多个字段值去确定本条数据的唯一性
3、规范:
在Oracle数据库中,联合主键的列不能超过32个。主键可以在创建表时定义或者通过ALTER TABLE语法定义
4、使用:
1)、创建表时添加联合主键:示例:
create table test
(sno char(12),
name char(4),
CONSTRAINT PK_test PRIMARY KEY (sno,name) -- 联合主键
);
2)创建表之后追加联合主键:
alter table 表名 add constraint pk_tab2 primary key (sno,name);
5、禁用主键
语法:
ALTER TABLE table_name DISABLE CONSTRAINT constraint_name;
示例:
alter table tb_employees disable constraint tb_employees_pk;
6、启用主键:
语法:
ALTER TABLE table_name ENABLE CONSTRAINT constraint_name;
示例:
alter table tb_employees enable constraint tb_employees_pk;
6、删除主键:
语法:
ALTER TABLE table_name DROP CONSTRAINT constraint_name;
示例:
alter table tb_employees drop constraint tb_employees_pk;
alter table tb_departments drop constraint tb_departments_pk;
alter table TB_PK_EXAMPLE drop constraint TB_PK_EXAMPLE_PK;
alter table TB_SUPPLIER_EX drop constraint TB_SUPPLIER_EX_PK;
-
oracle数据库联合主键
2021-05-02 01:29:21⑤语法: 1.StudentID int not null primary key 创建学生编号为主键 2.primary key(Students) 创建学生编号为主键 3.primary key(StudentID,Email) 创建学生ID和Email为联合主键 ⑥为已存在的列创建主键 1.alter ...1.not null 非空约束
①强制列不接受空值
②例:创建表时,name varchar(6) not null,
2.unique 唯一性约束
①约束唯一标识数据库表中的每条记录
②unique和primary key都为数据提供了唯一性约束
③primary key 拥有自动定义的Unique约束
④注意:每个表中只能有一个primary key约束,但是可以有多个Unique约束
⑤语法:
1.name int unique
2.unique(column_name)
3.CONSTRAINT uc_PersonID UNIQUE (Id_P,LastName) 添加多个约束
4.alter table table_name add unique(column_name) 增加表中的约束
5.ALTER TABLE table_name DROP CONSTRAINT 主键名 删除约束
3.primary key约束
①约束唯一标识数据库表中的每条记录
②主键必须包含唯一的值
③主键列不能为空
④每个表都应该有个主键,但只能有一个主键
⑤语法:
1.StudentID int not null primary key 创建学生编号为主键
2.primary key(Students) 创建学生编号为主键
3.primary key(StudentID,Email) 创建学生ID和Email为联合主键
⑥为已存在的列创建主键
1.alter table table_name add primary key(column_name)
⑦删除主键约束
1.alter table table_name drop primary key
⑧删除主键约束
1.alter table table_name drop constraint 主键约束名 主键约束名可以使用sp_help查询
4.foreign key约束
①一个表中的foreign key 指向另一个表的primary key
②foreign key约束用于预防破坏表之间连接的动作
③foreign key约束也能防止非法数据插入外键列,因为它必须是指向的那个表的值之一
④语法:
1.foreign key (column_name) references 主表名(主键列名) 创建column_name为主表名的外键
2.column_name int foreign key references 主表名(主键列名) 创建column_name为主表名的外键
3.alter table table_name
add foreign key (列名) references 主表名(主键列名) 为已存在的列创建外键
4.alter table table_name drop constraint 外键约束名 删除外键约束(SQL Server oracle)
5.alter table table_name drop foreign key 外键约束名 删除外键约束(Mysql)
5.check 约束
①check约束用于限制列中的值的范围
②如果对个单个列做check约束,那么该列只可以输入特定数值
③如果一个表定义check约束,那么此约束会在特定的列对值进行限制
④语法:
1.StudentID int not null check (StudentID>0) 限制StudentID输入的值要大于0 (SQL Server oracle)
2.StudentID int not null, 限制StudentID输入的值要大于0 (Mysql)
check (StudentID>0)
3.sex varchar(2) not null check(sex='男' or sex='女') 限制sex的性别只能是男或者女
4.alter table table_name add check(列名>0) 向已有的列加入check约束
5.alter table table_name drop constraint check约束名 删除约束 约束名可以用 sp_help table_name查看
6.default约束
①default约束用于向列中插入默认值
②如果没有规定其他的值,那么会将默认值添加到所有的新记录中
③语法:
1.name varchar(10) default '张三' name默认插入张三的名字
2.systime date default gatedate() 插入时间的默认值 getetime()函数为时间的默认值
3.alter table table_name add 列名 set default '数值' 向已有列名中插入默认值
4.alter table table_name drop constraint 约束名 删除默认约束
*/
————————————————
版权声明:本文为CSDN博主「z120270662」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/z120270662/java/article/details/79501621
-
Oracle查看主键、删除主键以及新增联合主键
2020-12-25 22:38:40Oracle查看主键、删除主键以及新增联合主键 主键是用于唯一标识表中的每一条数据的,不能重复也不能为null。一个表中不能有多个独立的主键,但是一个表中可以有联合主键(即多个字段组合)。 一、查看主键 ... -
Oracle查看主键、删除主键、添加联合主键
2019-06-20 10:50:30Oracle主键保证了单条记录的唯一性,设置了主键的表在插入数据的时候比没有设置主键的表速度更快一些,在给某一张表设置或者更改主键之前,先检查下当前表时候已经设置了主键,可以按照如下步骤进行操作 1、查询某个... -
Oracle联合主键
2021-05-07 12:44:17设置Distribution clean up 每次删除Command的数量 Replication Job “Distribution clean up: distribution” 默认设置是,每10minutes运行一次,每次删除2000个Command.这对于有1.9亿 ... Woodbury matrix identity... -
oracle 主键删除,联合主键的创建
2014-10-18 14:57:001,主键的删除 ALTER TABLE TABLENAME DROP PRIMARY_KEY 运行上面的SQL能够删除主键;假设不成功能够用 ALTER TABLE TABLENAME DROP CONSTRAINTS COLUMN CASCADE; --删除约束 ALTER TABLE TABLENAME DISABLE... -
oracle 联合主键去重,并删除重复数据
2020-12-24 17:06:58---去重 select XK_XDR_MC, XK_LYDWDM, XK_XKJGDM, XK_WSH, XK_JDRQ, XK_XKBH, count(1) from T_XZxks group by XK_XDR_MC, XK_LYDWDM, ...--删除重复 delete from T_XZxks where rowid not in( select max(rowid)... -
oracle新增、删除索引以及主键修改
2020-03-03 17:19:28验证一下,是否成功 二.oracle表删除索引 相信不少人遇到过ORA-02429: cannot drop index used for enforcement of unique /primary key 这个错误,对应的中文提示“ORA-02429: 无法删除用于强制唯一/主键的索引”,... -
联合主键自动创建索引,建表时也可指定索引
2021-05-08 12:09:41[code]C:\\Documents and Settings\\...sqlplus / as sysdbaSQL*Plus: Release 10.2.0.1.0 - Production on 星期一 8月 20 11:05:43 2012Copyright (c) 1982, 2005, Oracle. All rights reserved.连接到:Or... -
oracle 11g删除主键约束级联删除唯一索引
2021-11-16 11:04:06假设现在需要在联合主键中增加一个字段SO_COMPANY_CDE,刚开始的做法是删除主键约束,再重新创建联合主键 alter table CBS_AG_CNTR_MTHD drop CONSTRAINT PK_CBS_AG_CNTR_MTHD cascade; --确认约束和索引的删除... -
Oracle增加修改删除字段/主键
2021-05-03 07:02:552、删除表中已有的主键约束 (1)无命名 可用 SELECT * from user_cons_columns; 查找表中主键名称得student表中的主键名为SYS_C002715 alter table student drop constraint SYS_C002715; (2)有命名 alter table... -
Oracle外键与其主键的实际应用方案
2021-05-07 01:15:24以下的文章主要是对Oracle主键与Oracle外键的实际应用方案的介绍,此篇文章是我很然偶在一网站上发现的,如果你对Oracle主键与Oracle外键的实际应用很感兴趣的话,以下的文章就会给你提供更详细的相关方面的知识。... -
Oracle修改主键
2021-05-01 07:41:501、Oracle在已经存在主键的表中插入复合主键的SQL语句如已有一个表test_key,其中a1列为主键。CREATE TABLE TEST_KEY(A1 VARCHAR2(3) NOT NULL,A2 VARCHAR2(3),B1 VARCHAR2(3),B2 VARCHAR2(3));alter table TEST_KEY... -
oracle修改主键方法
2020-11-27 18:22:03step1:删除已建好的主键 alter table [表名] drop primary key --有主键无主键约束名的情形 alter table [表名] drop constraint [主键约束名] --有主键约束名的情形 step2:重新新建主键 alter table add primary ... -
关于复合主键查询时使用索引研究
2021-05-04 05:20:40一、主键唯一约束我们知道当某列为主键时,Oracle会自动将此列创建唯一约束。也就是说不允许有相同的值出现。如:CREATE TABLE T(ID NUMBER,NAME VARCHAR2(10),constraint t_pk primary key (ID));table T 已创建。... -
oracle 联合主键删除一列
2012-10-30 21:42:44create table b( field1 varchar2(50), field2 varchar2(50) ...ALTER TABLE b ADD CONSTRAINT pk_b PRIMARY KEY (field1,field2) ;... alter table b drop column field2 cascade constraints -
Oracle添加主键时,表中有重复数据,所以要删除表中重复数据只留一条
2022-03-04 11:55:58Oracle删除表中重复数据只留一条(一般是给表添加主键是不能有重复数据) 1.重复记录是根据单个字段(Id)来判断(主键为id) 1、查找表中多余的重复记录,重复记录是根据单个字段(Id)来判断 select * from 表 ... -
oracle根据主键去重(最高效)
2022-02-17 17:15:17-- 建表语句 create table KECHENG ( ID NUMBER, ... -- 根据id,删除重复数据 delete from KECHENG a where a.rowid>(select min(b.rowid) from KECHENG b where b.ID=a.ID); COMMIT; -- 查看 select * from KECHENG; -
oracle主键副键 - dananawei的个人空间 - OSCHINA - 中文开源技术交流社区
2021-05-01 06:04:54主键和外键是两种类型的约束;主键是能唯一的标识表中的每一行,就是说这一列非空且值不重复,可以指定为主键;作用是用来强制约束表中的每一行数据的唯一性;外键是b表中的某一列引用的值来源于a表中的主键列。也是... -
Oracle联合主键,序列,索引,视图,事务,导入导出,数据库表的映射关系,JDBC
2019-01-25 21:36:381.联合主键 联合主键:表的主键是由多个字段构成的,称为“联合主键”。 联合主键的约束:构成联合主键的每个字段的值可以重复,但是组合在一起不能重复 例如:下面的sc表中的S#和C#两个字段构成了联合主键,此时会...