后面还有一个有效化或无效化约束,有效化或无效化我们看看什么意思,先看看这个无效化,在alter table 语句当中,可以使用叫disable字句,将约束无效化,什么意思啊,我以not null为列吧,我们再换一个看看,unique,check,这个是not null的,我们用哪个都可以,看这两个,我先看这个表里面有没有数据select * from emp3;
这个表还有三个数据,然后现在我往这个表里去插入数据的时候,你看看,insert into emp3,values,这个主键这,主键没有,这个我给他避开吧,这里面有两个unique,一个是ID,一个是email,现在我ID我用1004了,有一个name,有一个非空的约束,DD,email是unique的,我改成这个,3000,大家你说我这个时候往里面插入能不能进去啊,显然不能,因为email有一个unique约束,这样因为重了insert into emp3values(1004,'DD','AA@126.com',3000)
改了,我们把这个改成disable了,我们刷新一下你看看,大家你看,这个时候这个约束并没有给删除,所以他不与drop,但是他变成一个灰色了,表示他现在没有起作用,没有起作用那就是言外之意,当我再往表里再去给你插入这样一条数据的话,已经存在了,看看我能不能够插入成功insert into emp3values(1004,'DD','AA@126.com',3000)
你看他说不行,说无法验证他,因为找到重复的关键字,这个是什么情况啊select * from emp3;
是不是这个意思,我现在想把它置成一个unique的,但是你这里面存在一个重复的,存在一些重复的,我就没法往里加了,那只要你这个不存在的话,才能够加,所以这个数据我得处理一下,处理的话你可以把它删了,可以update一下,我就直接先删了吧delete from emp3 where id = 1004;删了
SELECT constraint_name, column_name
FROM user_cons_columns
WHERE table_name = 'EMPLOYEES';这个是你约束的名,那你这个约束的名是加在哪个列上的,你可以使用这样一个命令,我们在这也可以看,在这是叫图形化界面的方式,我点一点就完了,这个就通过代码