diff --git "a/07 \345\273\226\346\262\273\345\205\210/\344\275\234\344\270\232/2022-10-10 \344\275\234\344\270\232 .sql" "b/07 \345\273\226\346\262\273\345\205\210/\344\275\234\344\270\232/2022-10-10 \344\275\234\344\270\232 .sql" new file mode 100644 index 0000000000000000000000000000000000000000..b5f83b92f640ddb76060dee4c08a91c0032e503c --- /dev/null +++ "b/07 \345\273\226\346\262\273\345\205\210/\344\275\234\344\270\232/2022-10-10 \344\275\234\344\270\232 .sql" @@ -0,0 +1,28 @@ +--(1)假设有部门表和员工表,在添加员工的时候,该员工的部门编号如果在部门表中找不到,则自动添加部门信息,部门名称为"新部门"。 + create trigger adddepart + on people for insert + as + declare @id varchar(20) = (select DepartmentId from inserted) + if not exists(select * from Department where DepartmentId=@id) + begin + insert into Department values(@id,'新部门') + end + ; + insert into People values('004','曹操','男',10000) +--(2)触发器实现,删除一个部门的时候将部门下所有员工全部删除。 + create trigger deletedepart + on department for delete + as + declare @id varchar(20)=(select DepartmentId from deleted) + delete from people where DepartmentId=@id + ; + delete from Department where DepartmentId='006' +--(4)修改一个部门编号之后,将该部门下所有员工的部门编号同步进行修改 + create trigger updatedepart + on department for update + as + declare @oldid varchar(20)=(select DepartmentId from deleted) + declare @newid varchar(20)=(select departmentid from inserted) + update People set DepartmentId=@newid where DepartmentId=@oldid + ; + update Department set DepartmentId='005' where DepartmentId='004' diff --git "a/07 \345\273\226\346\262\273\345\205\210/\347\254\224\350\256\260/2022-10-10\347\254\224\350\256\260.md" "b/07 \345\273\226\346\262\273\345\205\210/\347\254\224\350\256\260/2022-10-10\347\254\224\350\256\260.md" new file mode 100644 index 0000000000000000000000000000000000000000..7a9c43722cc62958c2f68cba2c47a836e42a887a --- /dev/null +++ "b/07 \345\273\226\346\262\273\345\205\210/\347\254\224\350\256\260/2022-10-10\347\254\224\350\256\260.md" @@ -0,0 +1,40 @@ +瑙﹀彂鍣紙trigger锛 + +瑙﹀彂鍣ㄤ富瑕佺敤浜庯細insert(澧)锛寀pdate(鏀)锛宒elete(鍒)锛堝湪鎵ц瀹屽/鍒/鏀 鍚庤嚜鍔ㄨ繍琛岃Е鍙戝櫒涓殑浠g爜锛 + + + +鍒涘缓瑙﹀彂鍣 + +create trigger <瑙﹀彂鍣ㄥ悕绉> + +on 鎵ц鎿嶄綔鐨勮〃鍚 for [delete,insert,update] (澧,鍒,鏀圭殑 鎿嶄綔) + +as + +鈥 sql 璇彞 + +; + + + +1.鎻掑叆鎿嶄綔(insert) + +鍦ㄨЕ鍙戝櫒涓細鐢熸垚涓涓猧nserted琛ㄦ潵甯姪瀛樺偍鎻掑叆鐨勬暟鎹 + +2.鍒犻櫎鎿嶄綔(delete) + +鍦ㄨЕ鍙戝櫒涓細鐢熸垚涓涓猟eleted琛ㄦ潵甯姪瀛樺偍鎻掑叆鐨勬暟鎹 + +3.鏇存柊鎿嶄綔(update) + +鏇存柊鎿嶄綔闇瑕佷娇鐢╥nserted琛ㄥ拰deleted琛ㄦ潵杩涜鏁版嵁淇敼 + +inserted琛ㄤ腑瀛樼殑鏄(鏂版暟鎹),deleted琛ㄤ腑瀛樼殑涓(鏃ф暟鎹) + + + + + + +