Oracle使用觸發器實現ID自增的問題
資料庫表OperationLog的ID是使用觸發器實現自增的。
觸發器:
create or replace trigger SystemOperationLogAutoAddID
before insert on REFERENCING
NEW AS new
OLD AS old
for each row
begin
SELECT systemoperationlog_INDEXID.NEXTVAL INTO :new.ID FROM sys.dual;
dbms_output.put_line(:new.ID);
end SystemOperationLogAutoAddID;
今天從其他資料庫中備份了表,並匯入到我的資料庫中。再在OperationLog表中插入資料時總是報主鍵衝突。
後來使用輸出語句dbms_output.put_line(:new.ID);輸出觸發器獲取的ID,發現ID很小。原來觸發器只有在實際往表中插入資料的時候才會ID加1(初始化為1),一開始因為表中有幾萬條資料,但觸發器獲取的ID才為21,所以主鍵一定會衝突了。
Oracle觸發器除錯:http://blog.csdn.net/jbgtwang/article/details/4296667
相關文章
- oracle觸發器~ 更新多表的問題Oracle觸發器
- Oracle資料庫DDL審計觸發器觸發的bug問題Oracle資料庫觸發器
- 自增ID的實現
- Oracle實現自增列(序列+觸發器實現、Identity Columns新特性、序列作為預設值)Oracle觸發器IDE
- Oracle觸發器死鎖問題解決Oracle觸發器
- MySQL怎麼利用函式和觸發器實現非主鍵自增?MySql函式觸發器
- 觸發器實現表資料自動更新觸發器
- 如何實現Redis裡的自增ID計數器Redis
- oracle 觸發器實現禁止在資料庫中建立dblink ---透過觸發器實現Oracle觸發器資料庫
- 使用FGA實現SELECT觸發器功能觸發器
- mysql的自增id的一個問題MySql
- Oracle 跨使用者表間資料操作(觸發器實現)Oracle觸發器
- Oracle 自動備份觸發ORA-01513問題Oracle
- Oracle Instead of 觸發器的使用Oracle觸發器
- oralce觸發器解決問題觸發器
- Vue實現自動觸發功能Vue
- oracle變異表觸發器相關問題解決Oracle觸發器
- mysql繞過行觸發器,實現語句觸發器MySql觸發器
- Oracle 觸發器中使用遊標Oracle觸發器
- Oracle觸發器Oracle觸發器
- Oracle觸發器觸發級別Oracle觸發器
- Redis實現sequence功能自增idRedis
- Android自帶Json庫使用引發的問題AndroidJSON
- ORACLE DDL觸發器Oracle觸發器
- Oracle之觸發器Oracle觸發器
- oracle ddl 觸發器Oracle觸發器
- oracle 觸發器的例項Oracle觸發器
- Oracle觸發器6(建立系統事件觸發器)Oracle觸發器事件
- 根據業務寫觸發器(oracle觸發器片)觸發器Oracle
- oracle自帶的sql developer使用問題OracleSQLDeveloper
- 【iCore4 雙核心板_FPGA】例程六:觸發器實驗——觸發器的使用FPGA觸發器
- 【iCore3 雙核心板_FPGA】例程八:觸發器實驗——觸發器的使用FPGA觸發器
- 在After Insert觸發器中使用INSERT後,影響SCOPE_IDENTITY 問題觸發器IDE
- 【iCore1S 雙核心板_FPGA】例程八:觸發器實驗——觸發器的使用FPGA觸發器
- MySQL使用觸發器MySql觸發器
- ORACLE觸發器詳解Oracle觸發器
- Oracle登陸觸發器Oracle觸發器
- oracle 觸發器-表同步Oracle觸發器