时间:2021-07-01 10:21:17 帮助过:160人阅读
建好表之后,新增或修改,删除约束
****************************
先用此语句查看某个表的所有约束:
select TABLE_NAME,CONSTRAINT_NAME,SEARCH_CONDITION,STATUS from user_constraints WHERE TABLE_name=upper(‘&TABLE_Name‘);
0.增加not null约束
alter table student modify sname not null;
1.修改null约束
alter table student modify sname null;/*姓名可以为空*/
2.增加主键约束
alter table student
add constraint pk_student
primary key(id);
3.删除主键约束
先用此语句查看某个表的所有约束:
select TABLE_NAME,CONSTRAINT_NAME,SEARCH_CONDITION,STATUS from user_constraints WHERE TABLE_name=upper(‘&TABLE_Name‘);
这里要删除的是约束"fk_student"
alter table drop constraint fk_student;
4.增加外键约束
alter table sc
add constraint fk_student
foreign key(sno)
references student(sno);
5.删除外键约束
需要知道要删除的外键名称,
先用此语句查看某个表的所有约束:
select TABLE_NAME,CONSTRAINT_NAME,SEARCH_CONDITION,STATUS from user_constraints WHERE TABLE_name=upper(‘&TABLE_Name‘);
alter table drop constraint fk_student;
6.添加unique约束
alter table course modify cname unique;
添加unique的同时,会自动创建一个相同名称的索引.
7.取消unique
alter table course
drop constraint sys_c005472;
8.删除索引
查找要删除的索引名称
运行此语句:
select index_name,table_owner,table_name,tablespace_name,status from user_indexes order by table_name;
然后运行
drop index sys_coo5472;
今天在对一个表,对其中一个属性,新建unique约束,
但是提示:ora-02261:such unique or primary key already exists in the table
原因是该属性已经是primary key了.
如果该属性已经有unique约束,则不能赋予该属性primary key约束.
1.一个表只能有一个primary key,可以有多个unique约束
2.当创建primary key的时候,会同时建立一个索引,名字和primary key的名称相同.
3.当某属性为primary key,会默认新增not null约束,当删除primary key后,not null属性取消.
4.表的一个属性可以同时设定not null和primary key约束.
这里先新建一个表,其中ID就是要设为主键的column。
创建table的代码如下:
CREATE TABLE test_tab
(
id NUMBER,
name VARCHAR2(30)
)
要设置主键的话这里需要用到alter table这个语法。
设置主键的代码如下:
ALTER TABLE test_tab ADD CONSTRAINT pk_test_tab PRIMARY key(id);
这里解释下:
alter table table_name-----------------------意思就是要改动某个表
add constraint constraint_name-------------意思就是给某个表加约束/限制
primary key(column_name)------------------说明是主键的约束,而且是某个column的。
执行之后就设置成功了,若不放心可以亲自测试下。
执行如下代码一次:
INSERT INTO test_tab(id,name) VALUES (1,‘test‘);
看到已经insert成功!
在重复的执行一次:
INSERT INTO test_tab(id,name) VALUES (1,‘test‘);
这个时候就有error了:
ORA-00001: unique constraint (SCOTT.PK_TEST_TAB) violated
好了表的主键就这样设置成功了!
create table语句中如何设置主键-CSDN论坛 http://bbs.csdn.net/topics/90208943
数据库中创建表(包括创建主键,外键,非空列,唯一)
标签:建立 必修课 oracle log 包括 sdn 而且 取消 .com