oracle觸發(fā)器update寫法 Oracle-A表a字段更新后,修改b字段的值,寫了個(gè)觸發(fā)器,執(zhí)行報(bào)錯(cuò)ora-04091?
Oracle-A表a字段更新后,修改b字段的值,寫了個(gè)觸發(fā)器,執(zhí)行報(bào)錯(cuò)ora-04091?當(dāng)然不是。如果在修改a字段時(shí)未提交update語句,則會(huì)有一個(gè)鎖。當(dāng)然,不可能通過觸發(fā)器讀取同一行。如果修改是
Oracle-A表a字段更新后,修改b字段的值,寫了個(gè)觸發(fā)器,執(zhí)行報(bào)錯(cuò)ora-04091?
當(dāng)然不是。如果在修改a字段時(shí)未提交update語句,則會(huì)有一個(gè)鎖。當(dāng)然,不可能通過觸發(fā)器讀取同一行。如果修改是連續(xù)的,那么我想我要寫的不是觸發(fā)器,而是一個(gè)過程,而不是觸發(fā)器。每次修改表時(shí),都會(huì)調(diào)用此過程(只需傳入要修改的參數(shù))。在此過程之前,更新conttype。提交后,更新glbdef1字段。最好有一個(gè)序列。
oracle當(dāng)表A1,數(shù)據(jù)發(fā)生update時(shí),將字段time更新為當(dāng)前時(shí)間?
最初我的想法是設(shè)置觸發(fā)器,但現(xiàn)在看來我無法設(shè)置觸發(fā)器。因?yàn)橐薷牡谋硎茿1,時(shí)間域是A1,也就是說修改時(shí)間域會(huì)觸發(fā)A1表的更新。無論是在之前還是之后,這意味著更新A1一直在重復(fù)。我認(rèn)為您可以編寫一個(gè)存儲(chǔ)過程,然后用它來修改表A1。實(shí)際上,存儲(chǔ)過程中有兩個(gè)update語句,一個(gè)是update字段,這個(gè)語句需要傳遞參數(shù),比如要修改的字段和內(nèi)容。另一個(gè)語句是修改時(shí)間,這個(gè)不需要參數(shù),只是一個(gè)固定的語句,所以應(yīng)該是可以的。