-- 新建乙個表 create table try as select * from 學生基本資訊 ; -- 新增可延遲主鍵 alter table try add constraint pk_try primary key( 學號 ) deferrable initially immediate; -- 設定主鍵延遲 set constraint pk_try deferred; -- 插入主鍵重複的行
-- 新建乙個表
create table try as select * from 學生基本資訊;
-- 新增可延遲主鍵
alter table try add constraint pk_try primary key(學號) deferrable initially immediate;
-- 設定主鍵延遲
set constraint pk_try deferred;
-- 插入主鍵重複的行
insert into try values('222005389081101','張三','男','漢族');
-- 刪除帶有外來鍵依賴的主鍵
alter table 學生基本資訊 drop constraint pk_baseinfo cascade;
-- 新增回去
alter table 學生基本資訊 add constraint pk_baseinfo primary key(學號);
-- 新增可延遲的外來鍵
alter table 學生成績 add constraint fk_info_grade foreign key(學號) references 學生基本資訊(學號) deferrable initially immediate;
-- 設定外來鍵延遲
set constraint fk_info_grade deferred;
-- 插入不滿足外來鍵約束的行
insert into 學生成績 values('222005389081109','c010',80);
-- 使約束失效
alter table 學生成績 disable constraint fk_info_grade;
-- 再次插入
insert into 學生成績 values('222005389081109','c010',80);
-- 使約束生效
alter table 學生成績 enable constraint fk_info_grade;
-- 刪除列
delete from 學生成績 where 學號='222005389081109';
-- 新建學生成績表
create table try2 as select * from 學生成績;
-- 新增級聯刪除的外來鍵
alter table try2 add constraint fk_try2 foreign key(學號) references try(學號) on delete cascade;
-- 刪除try中的最後乙個記錄
delete from try where 學號='222005389081077';
-- 執行存放約束行的系統指令碼
@ d:\oracle\product\10.2.0\db_1\rdbms\admin\utlexcpt.sql
-- 查詢違反約束條件的行
create table student as select * from 學生基本資訊;
alter table student add constraint pk_student primary key(學號);
alter table student disable constraint pk_student;
insert into student values('222005389081102','張三','男','漢族');
alter table student enable constraint pk_student;
alter table student enable constraint pk_student exceptions into exceptions;
select * from exceptions;
select * from student where rowid='aaam7saaeaaaaccabl'
alter table 學生成績 disable constraint fk_info_grade;
insert into 學生成績 values('222005389081109','c011',80);
commit;
alter table 學生成績 enable constraint fk_info_grade exceptions into exceptions;
select * from exceptions;
5.host md d:\oracle\ext_file
host copy d:\oracle\student.txt d:\oracle\ext_file\*.*
create or replace directory stud_ext as 'd:\oracle\ext_file';
conn sys/aaa as sysdba
grant read on directory stud_ext to hu;
conn hu/aaa
create table student_ext
(sno varchar2(20),
name varchar2(8),
*** varchar2(2),
nation varchar2(8))
organization external(
type oracle_loader
default directory stud_ext
access parameters(fields terminated by ',')
location('student.txt')
reject limit unlimited
最初由 wabjtam123 發布
[b]alter table employee add constraint pk_employee_empno primary key (empno) deferrable initally immediate;
這個表示是可延遲的主鍵約束
聽說這個延遲是表示事務提交後再檢查,而不延遲就表示不要到事務提交後才檢查,比如有插入有更新,未提交就立即檢查
我覺的這個延遲約束這樣有什麼意義,感覺一點點意義都沒有,反而功能拿出來害人,我如果做了n多事情,最後再提交,提交的時候出錯了,我前面做的都白做了,不如早點提醒我不能這樣做,有約束,大家覺的呢? [/b]
如果您是以form的方式輸入資料就有用了,如果不延遲,由於幾個表已經建立外來鍵的聯絡所以輸入的次序必須嚴格定義,否則就會產生違反完整性約束的錯誤。
oracle10g 解除安裝
1 oracle 10g解除安裝軟體環境 1 windows xp oracle 10g2 oracle 安裝路徑為 d oracle 實現方法 1 開始 設定 控制面板 管理工具 服務停止所有 oracle 服務 2 開始 程式 oracle oradb 10g home1 oracle inst...
Oracle10g解除安裝
一 軟體解除安裝 1 windows xp oracle 10g 2 oracle安裝路徑為 d oracle 1 如果資料庫配置了自動儲存管理 asm 應該先刪除聚集同步服務css cluster synchronization services 刪除css服務的方法是在dos命令列中執行如下命令...
解除安裝oracle10g
1.停止所有與oracle相關的服務。2.使用oui oracle universal installer 解除安裝oracle軟體。開始 程式 oracle oradb110g home1 oracle installation product universal installer.3.刪除登錄...