第五章數據庫完整性_第1頁
第五章數據庫完整性_第2頁
第五章數據庫完整性_第3頁
第五章數據庫完整性_第4頁
第五章數據庫完整性_第5頁
已閱讀5頁,還剩25頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、數據庫概論1第五章第五章 數據庫完整性數據庫完整性5.1 5.1 實體完整性實體完整性 5.2 5.2 參照完整性參照完整性5.3 5.3 用戶定義的完整性用戶定義的完整性5.4 5.4 完整性約束命名子句完整性約束命名子句5.6 5.6 觸發(fā)器觸發(fā)器數據庫概論2數據庫完整性數據庫完整性p數據庫的完整性:數據庫的完整性:指數據庫的指數據庫的正確性、有效性正確性、有效性和和相容性相容性,其目的是防止錯誤的其目的是防止錯誤的數據進入數據庫數據進入數據庫即完整性體現是數據庫能否真實地反映現實世界。其中:即完整性體現是數據庫能否真實地反映現實世界。其中:正確性:指數據的合法性正確性:指數據的合法性有效

2、性:指數據是否屬于所定義域的有效范圍有效性:指數據是否屬于所定義域的有效范圍相容性:指表示同一事實的兩個數據應當一致,不一致即相容性:指表示同一事實的兩個數據應當一致,不一致即是不相容的是不相容的p完整性被破壞的原因:完整性被破壞的原因:由更新操作不遵守完整性約束條件引起的由更新操作不遵守完整性約束條件引起的數據庫概論3(1)概念不同:概念不同:v數據庫的完整性:數據庫的完整性: 是為了防止數據庫中存在部分不符合語義的數據,防止是為了防止數據庫中存在部分不符合語義的數據,防止錯誤信息的輸入和輸出。用以保證數據的正確、有效。錯誤信息的輸入和輸出。用以保證數據的正確、有效。防防范對象是不合語義的數

3、據。范對象是不合語義的數據。v數據庫的安全性:數據庫的安全性: 是為了保護數據庫防止惡意的破壞和非法的存取。是為了保護數據庫防止惡意的破壞和非法的存取。防范防范對象是非法用戶和非法操作。對象是非法用戶和非法操作。(2)聯系:聯系: 二者又是密切相關的,都是使得系統隨時可正常運轉,二者又是密切相關的,都是使得系統隨時可正常運轉,防止機密信息泄露和破壞。防止機密信息泄露和破壞。數據安全性與完整性區(qū)別數據安全性與完整性區(qū)別數據庫概論4DBMSDBMS為維護數據庫的完整性所做的工作為維護數據庫的完整性所做的工作p提供定義完整性約束條件的機制提供定義完整性約束條件的機制SQL標準使用標準使用DDL來描述

4、完整性來描述完整性p提供完整性檢查的方法提供完整性檢查的方法DBMS中檢查數據是否滿足完整性約束條件的機制中檢查數據是否滿足完整性約束條件的機制p違約處理違約處理DBMS若發(fā)現用戶的操作違背了完整性約束條件,就采取若發(fā)現用戶的操作違背了完整性約束條件,就采取措施進行違約處理措施進行違約處理數據庫概論55.1 5.1 實體完整性實體完整性v關系模型的實體完整性在關系模型的實體完整性在CREATE TABLECREATE TABLE中用中用PRIMARY KEYPRIMARY KEY定定義義v單屬性構成的碼:單屬性構成的碼:v列級約束條件列級約束條件v表級約束條件表級約束條件v多屬性構成的碼:多屬

5、性構成的碼:v表級約束條件表級約束條件數據庫概論6例例1將將Student 表中的表中的Sno屬性定義為碼屬性定義為碼 CREATE TABLE Student (Sno CHAR(9) , Sname CHAR(20) NOT NULL, Ssex CHAR(2), Sage SMALLINT, Sdept CHAR(20) );PRIMARY KEY(Sno)例例2將將SC 表中的表中的Sno,Cno屬性定義為碼屬性定義為碼 CREATE TABLE SC (Sno CHAR(9) NOT NULL, Cno CHAR(4) NOT NULL, Grade SMALLINT, PRIMAR

6、Y KEY (Sno, Cno) );列級定義主碼列級定義主碼表級定義主碼表級定義主碼表級定義主碼表級定義主碼PRIMARY KEY(Sno)數據庫概論7實體完整性檢查和違約處理實體完整性檢查和違約處理用用PRIMARYKEY短語定義了關系的主碼之后,每當用戶程短語定義了關系的主碼之后,每當用戶程序對基本表進行插入或更新操作之前,序對基本表進行插入或更新操作之前,RDBMS會對實體完整性會對實體完整性進行檢查:進行檢查:檢查主碼值是否唯一,如果不唯一則拒絕插入或修改檢查主碼值是否唯一,如果不唯一則拒絕插入或修改檢查主碼的各個屬性是否為空,只要有一個為空就拒絕插入檢查主碼的各個屬性是否為空,只要

7、有一個為空就拒絕插入或修改或修改檢查主碼值是否唯一的方法:檢查主碼值是否唯一的方法:全表掃描全表掃描為主碼建立一個索引為主碼建立一個索引數據庫概論85.2 5.2 參照完整性參照完整性v關系模型的參照完整性在關系模型的參照完整性在CREATE TABLECREATE TABLE中用中用FOREIGN KEYFOREIGN KEY定定義外碼,用義外碼,用REFERENCESREFERENCES指明外碼參照哪些表的主碼指明外碼參照哪些表的主碼例例3 3定義定義SCSC中的參照完整性中的參照完整性CREATE TABLE SCCREATE TABLE SC (Sno CHAR(9) (Sno CHA

8、R(9) NOT NULLNOT NULL, Cno CHAR(4) NOT NULL,Cno CHAR(4) NOT NULL, Grade SMALLINT, Grade SMALLINT, PRIMARY KEY (Sno, Cno), PRIMARY KEY (Sno, Cno), / /* *在表級定義實體完整性在表級定義實體完整性* */ / FOREIGN KEY (Sno) REFERENCES Student(Sno), FOREIGN KEY (Sno) REFERENCES Student(Sno),/ /* *在表級定義參照完整性在表級定義參照完整性* */ / FOR

9、EIGN KEY (Cno) REFERENCES Course(Cno) FOREIGN KEY (Cno) REFERENCES Course(Cno) / /* *在表級定義參照完整性在表級定義參照完整性* */ / ); );數據庫概論9參照完整性檢查和違約處理參照完整性檢查和違約處理對參照表和被參照表進行增刪改操作時必須進行檢查對參照表和被參照表進行增刪改操作時必須進行檢查被參照表(被參照表(Student)參照表(參照表(SC)違約處理違約處理可能破壞參照完整性可能破壞參照完整性插入元組插入元組拒絕拒絕可能破壞參照完整性可能破壞參照完整性修改外碼值修改外碼值拒絕拒絕刪除元組刪除元組

10、可能破壞參照完整性可能破壞參照完整性拒絕拒絕/級連刪除級連刪除/設置為空值設置為空值修改主碼值修改主碼值可能破壞參照完整性可能破壞參照完整性拒絕拒絕/級連刪除級連刪除/設置為空值設置為空值違約處理:違約處理:拒絕執(zhí)行:拒絕執(zhí)行:不允許操作不允許操作(系統默認策略)(系統默認策略)級連操作:級連操作:刪除或修改參照表中的所有造成不一致的元組刪除或修改參照表中的所有造成不一致的元組設置為空值:設置為空值:將參照表中的所有造成不一致的元組的對應屬將參照表中的所有造成不一致的元組的對應屬性設置為空值性設置為空值數據庫概論10(1)(1)外碼允許取空值:外碼允許取空值: 學生學生( (學號學號,姓名,性

11、別,專業(yè)號,年齡,姓名,性別,專業(yè)號,年齡) ) 專業(yè)專業(yè)( (專業(yè)號專業(yè)號,專業(yè)名,專業(yè)名) ) 學生關系學生關系( (參照參照)專業(yè)關系專業(yè)關系( (被參照被參照) )(2)(2)外碼不允許取空值:外碼不允許取空值: 學生關系學生關系( (被參照被參照) )選課關系選課關系( (參照參照) )對于參照完整性,除應該定義外碼,還應定義外碼是否允許取對于參照完整性,除應該定義外碼,還應定義外碼是否允許取空值。一般地,系統采用默認方式,即拒絕。如果想讓系統采空值。一般地,系統采用默認方式,即拒絕。如果想讓系統采用其它方式則必須在建表之時顯式的說明用其它方式則必須在建表之時顯式的說明外碼能否接受空

12、值的問題外碼能否接受空值的問題修改修改修改修改數據庫概論11例例4顯式說明參照完整性的違約處理示例顯式說明參照完整性的違約處理示例CREATE TABLE SC (Sno CHAR(9) NOT NULL, Cno CHAR(4) NOT NULL, Grade SMALLINT, PRIMARY KEY (Sno, Cno), /*在表級定義實體完整性在表級定義實體完整性*/ FOREIGN KEY (Sno) REFERENCES Student(Sno) /*在表級定義參照完整性在表級定義參照完整性*/ ON DELETE CASCADE/*當刪除當刪除Student表中的元組時,級連刪

13、除表中的元組時,級連刪除SC表中相應的元組表中相應的元組*/ ON UPDATE CASCADE,/*當更新當更新Student表中的表中的Sno時,級連更新時,級連更新SC表中相應的元組表中相應的元組*/ FOREIGN KEY (Cno) REFERENCES Course(Cno), /*在表級定義參照完整性在表級定義參照完整性*/ON DELETE NO ACTION/*當刪除當刪除Course表中的元組造成了與表中的元組造成了與SC表不一致時拒絕刪除表不一致時拒絕刪除*/ ON UPDATE CASCADE,/*當更新當更新Course表中的表中的Cno時,級連更新時,級連更新SC表

14、中相應的元組表中相應的元組*/ );數據庫概論125.3 5.3 用戶定義的完整性用戶定義的完整性v在在CREATE TABLECREATE TABLE中定義屬性的同時可以根據應用要求,定義中定義屬性的同時可以根據應用要求,定義屬性上的約束條件,即屬性值限制,包括:屬性上的約束條件,即屬性值限制,包括:v列值非空(列值非空(NOTNOTNULLNULL)v列值唯一(列值唯一(UNIQUEUNIQUE)v檢查列值是否滿足一個布爾表達式(檢查列值是否滿足一個布爾表達式(CHECKCHECK短語)短語)數據庫概論131.不允許取空值不允許取空值例例5 在定義在定義SC表時,說明表時,說明Sno、Cn

15、o、Grade屬性不允許取空值屬性不允許取空值CREATE TABLE SC (Sno CHAR(9) NOT NULL, Cno CHAR(4) NOT NULL, Grade SMALLINTNOT NULL, PRIMARY KEY (Sno, Cno) /*在表級定義實體完整性在表級定義實體完整性*/ );數據庫概論142.列值唯一列值唯一例例6 建立部門表建立部門表DEPT,要求部門名稱,要求部門名稱Dname列取值唯一,部列取值唯一,部門編號門編號Deptno列為主碼列為主碼CREATE TABLE DEPT (Deptno NUMERIC(2), Dname CHAR(9) UN

16、IQUE, /*要求要求Dname列值唯一列值唯一*/ Location CHAR(10), PRIMARY KEY (Deptno) /*在表級定義實體完整性在表級定義實體完整性*/ );數據庫概論153.用用CHECK短語指定列值應該滿足的條件短語指定列值應該滿足的條件例例7 Student表的表的Ssex只允許取只允許取“男男”和和“女女”。CREATE TABLE Student (Sno CHAR(9) PRIMARY KEY, Sname CHAR(8) NOT NULL, Ssex CHAR(2) CHECK (Ssex IN (男男, 女女), Sage SMALLINT, S

17、dept CHAR(20) );注:當往表中插入元組或修改屬性的值時,注:當往表中插入元組或修改屬性的值時,RDBMS就會檢查就會檢查屬性屬性上的約束條件是否被滿足,如果不滿足則操作被拒絕上的約束條件是否被滿足,如果不滿足則操作被拒絕數據庫概論16元組上的條件的定義:元組上的條件的定義:在在CREATETABLE語句中可以用語句中可以用CHECK短語定義元組短語定義元組上的約束,即元組級的限制。同屬性值限制相比,元組級的上的約束,即元組級的限制。同屬性值限制相比,元組級的限制可以設置不同屬性之間的取值的相互約束條件限制可以設置不同屬性之間的取值的相互約束條件例例9當學生的性別是男時,其名字不能

18、以當學生的性別是男時,其名字不能以Ms.打頭打頭CREATE TABLE Student (Sno CHAR(9) , Sname CHAR(8) NOT NULL, Ssex CHAR(2) , Sage SMALLINT, Sdept CHAR(20) PRIMARY KEY(Sno) CHECK (Ssex=女女) OR Sname NOT LIKE Ms.%/*定義了元組中定義了元組中Sname和和Ssex兩個屬性值之間的約束條件兩個屬性值之間的約束條件*/ );當往表中插入元組或修改屬性的值時,當往表中插入元組或修改屬性的值時,RDBMS就會檢查就會檢查元組元組上的約束條件是否被滿足

19、,如果不滿足則操作被拒絕上的約束條件是否被滿足,如果不滿足則操作被拒絕數據庫概論17完整性約束條件分類及含義完整性約束條件分類及含義粒度粒度狀態(tài)狀態(tài)屬性列級屬性列級元組級元組級關系表級關系表級靜態(tài)靜態(tài)靜態(tài)屬性列級約束靜態(tài)屬性列級約束屬性列定義屬性列定義數據類型約束數據類型約束數據格式約束數據格式約束值域約束值域約束 空值約束空值約束是規(guī)定一個元組是規(guī)定一個元組的各個列值之間的各個列值之間應滿足的條件的應滿足的條件的約束約束 是在一個關系的各個元組是在一個關系的各個元組之間或若干個關系之間之間或若干個關系之間存在的各種聯系或約束存在的各種聯系或約束實體完整性約束實體完整性約束參照完整性約束參照完

20、整性約束函數依賴約束函數依賴約束 統計約束統計約束動態(tài)動態(tài)是修改列定義或列是修改列定義或列值時的約束值時的約束是在修改某個元是在修改某個元組時對元組的新組時對元組的新舊值之間應滿足舊值之間應滿足的約束的約束是對某個關系的新、舊狀態(tài)是對某個關系的新、舊狀態(tài)間應滿足的約束條件間應滿足的約束條件數據庫概論18SQL在在CREATETABLE語句中提供了完整性約束命名子句語句中提供了完整性約束命名子句CONSTRAINT,用來對完整性約束條件命名,從而可以靈活地增刪一個完整性約束條件用來對完整性約束條件命名,從而可以靈活地增刪一個完整性約束條件1.完整性約束命名子句完整性約束命名子句格式格式CONST

21、RAINT完整性約束條件名完整性約束條件名PRIMARY KEY 短語短語|FOREIGN KEY|CHECK短語短語例例10建立學生登記表建立學生登記表Student,要求學號在,要求學號在90 00099 999之間,之間,姓名不能取空值,年齡小于姓名不能取空值,年齡小于30,性別只能是,性別只能是“男男”或或“女女”CREATE TABLE Student (Sno NUMERIC(6) CONSTRAINT C1 CHECK(Sno BETWEEN 90000 AND 99999), Sname CHAR(20) CONSTRAINT C2 NOT NULL, Sage NUMERIC

22、(3) CONSTRAINT C3 CHECK (Sage=3000) );外碼約束外碼約束EMPFKey,EMPFKey,列級約束列級約束C1C1數據庫概論202.修改表中的完整性限制修改表中的完整性限制應用應用ALTERTABLE語句修改表中的完整性語句修改表中的完整性例例1212去掉例去掉例1010中對表中對表StudentStudent中對性別的限制中對性別的限制 ALTERALTERTABLETABLEStudentStudent DROP CONSTRAINT C4; DROP CONSTRAINT C4;例例1313修改表修改表StudentStudent中的約束條件,要求學號改

23、為在中的約束條件,要求學號改為在900 900 000999 999000999 999之間,年齡由小于之間,年齡由小于3030改為小于改為小于4040ALTERALTERTABLETABLEStudentStudentDROP CONSTRAINT C1;DROP CONSTRAINT C1;ALTERALTERTABLETABLEStudentStudentADD CONSTRAINT ADD CONSTRAINT C1 CHECK(Sno BETWEEN 90000 AND 99999)C1 CHECK(Sno BETWEEN 90000 AND 99999);ALTERALTERTAB

24、LETABLEStudentStudentDROP CONSTRAINT C3;DROP CONSTRAINT C3;ALTERALTERTABLETABLEStudentStudentADD CONSTRAINT ADD CONSTRAINT C3 CHECK(Sage40)C3 CHECK(Sage40);數據庫概論21q引入觸發(fā)器原因:引入觸發(fā)器原因:q在很多情況下,當一個完整性約束被違背時,在很多情況下,當一個完整性約束被違背時,DBMSDBMS除了除了終止事務外,還需要執(zhí)行一些其他操作。為了在數據庫完終止事務外,還需要執(zhí)行一些其他操作。為了在數據庫完整性約束被違背時能夠及時執(zhí)行必要的

25、操作,人們提出了整性約束被違背時能夠及時執(zhí)行必要的操作,人們提出了觸發(fā)器技術觸發(fā)器技術5.6 5.6 觸發(fā)器觸發(fā)器數據庫概論225.6 5.6 觸發(fā)器觸發(fā)器q功能:功能:q主要功能:能夠實現由主碼和外碼所不能保證的、復雜的參主要功能:能夠實現由主碼和外碼所不能保證的、復雜的參照完整性照完整性q強化約束:強制實現業(yè)務規(guī)則和數據完整性強化約束:強制實現業(yè)務規(guī)則和數據完整性q跟蹤變化:可以跟蹤數據庫內的數據變化,阻止非法更新和跟蹤變化:可以跟蹤數據庫內的數據變化,阻止非法更新和刪除刪除q級聯運行:可以監(jiān)測數據庫內的操作,并自動將影響蔓延到級聯運行:可以監(jiān)測數據庫內的操作,并自動將影響蔓延到多個表多個

26、表q存儲過程的調用:為了響應數據庫更新,觸發(fā)器可以調用一存儲過程的調用:為了響應數據庫更新,觸發(fā)器可以調用一個或多個存儲過程,甚至可調用個或多個存儲過程,甚至可調用DBMSDBMS外的外部過程外的外部過程數據庫概論235.6 5.6 觸發(fā)器觸發(fā)器p觸發(fā)器(觸發(fā)器(Trigger):是用戶定義在關系表上的一類由事件驅):是用戶定義在關系表上的一類由事件驅動的特殊過程,或者說是一個能由系統自動執(zhí)行對數據庫修改動的特殊過程,或者說是一個能由系統自動執(zhí)行對數據庫修改的語句,亦稱為的語句,亦稱為主動規(guī)則主動規(guī)則p一旦定義,任何用戶對表的增刪改操作均由服務器自動激活一旦定義,任何用戶對表的增刪改操作均由服

27、務器自動激活相應的觸發(fā)器,在相應的觸發(fā)器,在DBMS核心層進行集中的完整性控制,它類核心層進行集中的完整性控制,它類似于約束,但較之約束更加靈活,具有更精細和更強大的數據似于約束,但較之約束更加靈活,具有更精細和更強大的數據控制能力控制能力p觸發(fā)器結構:觸發(fā)器結構: 一個觸發(fā)器由兩部分組成:一個觸發(fā)器由兩部分組成:(1)觸發(fā)事件:指對數據庫的更新等操作,在這些操作進行)觸發(fā)事件:指對數據庫的更新等操作,在這些操作進行時,觸發(fā)器將被激發(fā)。時,觸發(fā)器將被激發(fā)。(2)觸發(fā)器條件和動作:條件準則)觸發(fā)器條件和動作:條件準則 ,以確定更新語句是否導,以確定更新語句是否導致執(zhí)行觸發(fā)器動作。條件成立,則由致

28、執(zhí)行觸發(fā)器動作。條件成立,則由DBMS執(zhí)行觸發(fā)器動作。執(zhí)行觸發(fā)器動作。這些動作可以這些動作可以 是一系列對數據庫的操作是一系列對數據庫的操作數據庫概論24觸發(fā)器的定義觸發(fā)器的定義 CREATETRIGGER觸發(fā)器名觸發(fā)器名 BEFORE | AFTER | 觸發(fā)事件觸發(fā)事件 ON 表名表名 FOREACHROWSTATEMENT WHEN觸發(fā)條件觸發(fā)條件 觸發(fā)動作體觸發(fā)動作體其中:其中:1.1.表的擁有者即創(chuàng)建表的用戶才可以在表上創(chuàng)建觸發(fā)器,并且表的擁有者即創(chuàng)建表的用戶才可以在表上創(chuàng)建觸發(fā)器,并且一個表上只能創(chuàng)建一定數量的觸發(fā)器一個表上只能創(chuàng)建一定數量的觸發(fā)器2.2.觸發(fā)器名:觸發(fā)器名:可以包

29、含模式名,也可以不包含模式名。同一模可以包含模式名,也可以不包含模式名。同一模式下,觸發(fā)器名必須是唯一的;并且觸發(fā)器名和式下,觸發(fā)器名必須是唯一的;并且觸發(fā)器名和 必須在必須在同一模式下同一模式下3.3.表名:表名:當這個表的數據發(fā)生變化時,將激活定義在該表相應當這個表的數據發(fā)生變化時,將激活定義在該表相應 的觸發(fā)器,該表也稱為觸發(fā)器的目標表的觸發(fā)器,該表也稱為觸發(fā)器的目標表數據庫概論25觸發(fā)器的定義觸發(fā)器的定義 CREATETRIGGER觸發(fā)器名觸發(fā)器名 BEFORE | AFTER | 觸發(fā)事件觸發(fā)事件 ON 表名表名 FOREACHROWSTATEMENT WHEN觸發(fā)條件觸發(fā)條件 觸發(fā)

30、動作體觸發(fā)動作體4.4.觸發(fā)事件:觸發(fā)事件:可以是可以是INSERTINSERT,DELETEDELETE或或UPDATEUPDATE,也可以是這幾,也可以是這幾個事件的組合。個事件的組合。UPDATEUPDATE后面還可以有后面還可以有OFOF, 即進即進一步指明修改哪些列時觸發(fā)器激活一步指明修改哪些列時觸發(fā)器激活5.5.觸發(fā)器類型:觸發(fā)器類型:行級觸發(fā)器和語句級觸發(fā)器行級觸發(fā)器和語句級觸發(fā)器6.6.觸發(fā)條件:觸發(fā)條件:只有當觸發(fā)條件為真時,觸發(fā)動作才執(zhí)行,反之只有當觸發(fā)條件為真時,觸發(fā)動作才執(zhí)行,反之不執(zhí)行不執(zhí)行7.7.觸發(fā)動作體:觸發(fā)動作體:可以是一個匿名可以是一個匿名PL/SQLPL/

31、SQL過程塊,也可以是對已過程塊,也可以是對已創(chuàng)建存儲過程的調用創(chuàng)建存儲過程的調用數據庫概論26例例1818 定義一個定義一個BEFOREBEFORE行級觸發(fā)器,為老師表行級觸發(fā)器,為老師表TeacherTeacher定義完整定義完整性規(guī)則性規(guī)則“教授的工資不得低于教授的工資不得低于40004000元,如果低于元,如果低于40004000元,自動元,自動改為改為40004000元元” CREATE TRIGGER Insert_Or_Update_SalCREATE TRIGGER Insert_Or_Update_Sal BEFORE INSERT OR UPDATE ON Teacher

32、BEFORE INSERT OR UPDATE ON Teacher FOR EACH ROW FOR EACH ROW AS BEGIN AS BEGIN IF(new.pJob= IF(new.pJob=教授教授) AND (new.Sal4000) THEN) AND (new.Sal4000) THEN new.Sal:=4000; new.Sal:=4000; END IF; END IF; END; END;數據庫概論27例例1919 定義定義AFTERAFTER行級觸發(fā),當教師表行級觸發(fā),當教師表TeacherTeacher的工資發(fā)生變化后的工資發(fā)生變化后就自動在工資變化表就自動

33、在工資變化表Sal_logSal_log中增加一條相應記錄中增加一條相應記錄 CREATE TABLE Sal_logCREATE TABLE Sal_log (Eno NUMERIC(4) reference teacher(eno), (Eno NUMERIC(4) reference teacher(eno), Sal NUMERIC(7,2), Sal NUMERIC(7,2), Username char(10), Username char(10), Date TIMESTAMP); Date TIMESTAMP); CREATE TRIGGER Insert_SalCREATE

34、TRIGGER Insert_Sal AFTER INSERT ON Teacher AFTER INSERT ON Teacher FOR EACH ROW FOR EACH ROW AS BEGIN AS BEGIN INSERT INTO Sal_log VALUES(new.Eno,new.Sal, INSERT INTO Sal_log VALUES(new.Eno,new.Sal, CURRENT_USER,CURRENT_TIMESTAMP);CURRENT_USER,CURRENT_TIMESTAMP); END; END; CREATE TRIGGER Update_SalCREATE TRIGGER Update_Sal AFTER UPDATE ON Teacher AFTER UPDATE ON Teacher FOR EACH ROW FOR EACH ROW AS BEGIN AS BEGIN IF(new.Salold.Sal) THEN INSERT INTO Sal_log VALUES( IF(new.Salold.Sal) THEN INSERT INTO Sal_log VALUES( new.Eno,new.Sal,CUTTENT_USER,CURRENT_TIMESTAMP); n

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論