问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

oracle中constraint和constraints的区别

发布网友 发布时间:2022-05-06 00:54

我来回答

2个回答

懂视网 时间:2022-05-06 05:15

summary:在data migrate时,某些表的约束总是困扰着我们,让我们的migratet举步维艰,如何利用约束本身的属性来处理这些问题呢?本文

summary:在data migrate时,某些表的约束总是困扰着我们,让我们的migratet举步维艰,如何利用约束本身的属性来处理这些问题呢?本文详细介绍了约束的四对属性: Deferrable/not deferrable, Deferred/immediate, enalbe/disable, validate/novalidate,以及如何应用这些属性灵活应对相关问题

1. Deferrable,not deferrable(default value)

1) 这对属性是定义是否可以defer,defer是指作检查的时机,如果在commit的时check为Defer,否则为immediate .只有在设置Deferrable才可以设置另一个属性2-- Deferred,immediate.

2) 设置defer check的方法有两种(前提是建立了Deferrable的contraint)

a. 通过建contraint时指定Deferred值

b. 通过会话级别的语句修改

SET CONSTRAINT(s) contraint_name/all immediate/deferred.

3) 这对属性是在创建的constraint的时候定义的,不能被修改.

4) notice:如果建立了Deferrable的uk或pk,只会建立相应的nonuniquce index,而不会建立uniquce index

2. Deferred,immediate(default value)

1) 这对属性定义是否defer. Deferred: check on commit; immediate: check immediate.

2) If constraint is not deferrable,immediate is only choice.

3) For example:

CREATE TABLE games

(scores NUMBER, CONSTRAINT unq_num UNIQUE (scores)

INITIALLY DEFERRED DEFERRABLE);

insert into games values(1);

insert into games values(1);

commit;--在此报错

You will not get a error util you commit it;

SET CONSTRAINT(s) unq_num immediate;--修改属性

insert into games values(2);

insert into games values(2);--在此报错

commit;

You will get a error when you execute the second sql;

3. novalidate, validate(default value)

1) 这对属性定义constraint是否对表中已经存在的数据作检查,例如:

create table t(id number);
insert into t values(1);
insert into t values(2);
alter table t add constraint ch_100 check(id>=100); --失败
alter table t add constraint ch_100 check(id>=100) novalidate;--成功

2) notice:与唯一索引相关的contraint(例如pk,uk),要做到以上的效果还必须设置为Deferrable(只是建立非唯一性索引),因为在维护索引是,如果违反了唯一性也会报错,所以必须建立非唯一性索引.例如:

drop table t;
create table t(id number);
insert into t values(1);
insert into t values(1);
alter table t add constraint ch_100 unique(id) ; --报错
alter table t add constraint ch_100 unique(id) novalidate; --报错
alter table t add constraint ch_100 unique(id) deferrable novalidate;--成功

4. disable, enalbe(default value)

1) 启用和禁用constraint.在新建pk和uk时定义了disable,将不建立相应的索引.

ALTER TABLE dept DISABLE CONSTRAINT dname_ukey;

ALTER TABLE dept ENABLE CONSTRAINT dname_ukey;

alter table t add constraint ch_100 unique(id) disable;

2) DISABLE uk或pk作了些什么:

Disable非deferrable 的pk、uk,将删除相应的索引(除非指定了keep index,但是keep下来的索引是唯一性的,insert数据时还是要作唯一性检查的),在enable时重建索引.

Disbale deferrable 的pk、uk将保留原来的索引(因为原来的索引就是非唯一性的,不影响insert的操作).

3) 一些操作经验

KEEP INDEX要注意的:

a.ALTER TABLE games DISAble CONSTRAINT fk_num keep index;--唯一索引被保留,所以还是不能插入重复的数据.不应该keep index.

b.ALTER TABLE games DISAble CONSTRAINT fk_num;--如果上一步被执行,那么此语句什么都不做,唯一索引仍被保留,此时应该先enable在disable.如果原来的状态是able的话,那么唯一索引将被删除.

linux

热心网友 时间:2022-05-06 02:23

CONSTRAINT 表示约束,pk_ContactReason是约束的名称,PRIMARY KEY表示约束为主键,(ContactReason)表示主键约束在ContactReason字段上。如果你不需要主键约束,那么就可以不要
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
抗击疫情祝福语简短 疫情早日结束愿大家平安(精选76句) 新肺炎防范祝福语 2024年为武汉加油的朋友圈祝福语暖心句子 qq对对碰为什么在QQ游戏客户端页面没有QQ对对碰游戏 关于山地车骑行装备 烧心反酸吃什么药缓解 反胃酸烧心吃什么药 我第第因为喜欢一位女孩不和他谈拉受刺激神经错乱厌世厌学 怎么办 精神错乱你了解了吗 溯洄从之道阻且长什么意思 关于暂缓就业证跟报到证的问题。 报到证就是就业证吗? 就业证 就业报到证 山药发糕的做法窍门 我是04年毕业的,刚工作,想知道办理就业证和报到证是什么意思,两个东西一样用处吗? 就业证和报到证交哪去啊?如果不交会有什么事吗 毕业后微信群的名字 5个月大的哈士奇怎么驯啊? 我家的哈士奇五个月了,体重只有29斤,正常吗? 什么样的隔音材料好? 一个平方需要多少隔音棉 无锡哪有隔音棉 吸音棉买的 什么材料做墙最轻又隔音隔热 家用550W水泵如何隔音,想做和小箱子,不知道什么材料好,有没有现成的隔音箱或者隔音板之类的材料? 怎么下到国泰安数据库中的数据? 手机qq邮件附怎么打开mp4 如何把一个表格的数据汇总到另一个表格 什么隔音板好? 怎么把所有公司的系统数据上收到数据中心 地面隔音装修用什么材料好? 有报到证和结业证能办理就业证吗 报到证 就业证 择业证(刚毕业) 怎么判断哈士奇多大了? 5个月大的哈士奇应该怎么养?? 液晶显示器面板:IPS面板和TFT面板是一回事吗? EXCEL 用函数 怎么把142.8 显示成 140 呢?变整的,零头都去掉。谢谢 TFT-LCD面板与IPS面板那个好? 冰柜内胆有缝隙会渗水会烂管子嘛? 金稻谷拉肠(珠村店)的黄豆红烧肉饭好不好吃 家里有个冰箱,功率是1kw,每天使用24小时,每个月30天,请问每个月用多少电?_百度问一问 末儿香茹红烧肉怎么做 怎样炒黄豆好吃? 土豆和黄豆可以一起吃吗 上海铁路局在2020年实现了多少个安全年? 电脑238瓦一小时用多少度电 一天24小时用多少度电 实现安全年之后我们怎么办,写出心的体会 昆明局截止10月31日集团公司实现了第几个防洪安全年 耗电量千瓦时24小时/0.39,一个小时消耗多少度电? “质量和安全年”活动包括哪些内容? 今年防洪攻坚战,实现第几个防洪安全年?