約束分類:
primary key
not null
foreign key
check
unique
--查詢約束狀態
drop table t01 purge;
create table t01(id number primary key,name varchar2(20));
select * from user_constraints;
status
deferrable
deferred
validated
延遲deferrable:可延遲,檢查方式:immediate,deferred
--約束可延遲,立即檢查
create table t01(id number primary key deferrable
,name varchar2(20));
insert into t01 values(1,'a');
insert into t01 values(1,'b');
--約束可延遲,延遲到提交檢查
create table t02(id number primary key deferrable initially deferred
,name varchar2(20));
insert into t02 values(1,'a');
insert into t02 values(1,'b');
commit;
--檢視表t01,t02,t03主鍵帶索引
create table t03(id number primary key
,name varchar2(20));
select * from user_indexes;
uniqueness
約束狀態
enable disable
validate novalidate
enable validate: 啟用約束,校驗資料(新,舊)
enable novalidate:啟用約束,校驗資料(新)
disable novalidate:停用約束
disable validate:停用約束,
--向有主鍵表中插入重複資料
步驟1:讓主鍵約束對應的索引一定非唯一
辦法1:建主鍵時指定deferrable
create table t01(id number primary key deferrable ,name varchar2(20));
辦法2:加主鍵前先建乙個非唯一索引,然後加主鍵
create table t01(id number,name varchar2(20));
create index t01i on t04(id);
alter table t01 add constraint t04i primary key(id);
步驟2:禁用約束
alter table t01 modify constraint ***x disable;
insert into t01 values(1,'a');
insert into t01 values(1,'b');
commit;
步驟3:啟用約束,但不校驗已存在資料
alter table t01 modify constraint sys_c002990 enable novalidate;
select * from t01;
Oracle 培訓筆記
how to create and manage view?1 create user create user username identified by password 2 set authority grant authorityname to username 3 set authorit...
oracle 培訓筆記 3
在輸入sqlplus assysdba時,自動鏈結上的資料庫不一定是本機的資料庫,而是系統環境變數中oracle sid所指定的變數,安裝oracle後,會預設將windows下的這個環境變數設定成你新建的這個sid archiveloglist可以顯示出當前資料庫的歸檔模式 如果要長期的修改sql...
Oracle學習筆記(八) 約束
約束的作用 定義規則 確保資料完整性 非空約束 在建立表的時候設定 create table table name column name datatype not null,修改表的時候設定 alter table table name modify column name datatype no...