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
相關文章
- 自增ID的實現
- 如何實現Redis裡的自增ID計數器Redis
- 手動執行SQL觸發器id自增報錯處理方式SQL觸發器
- Oracle 自動備份觸發ORA-01513問題Oracle
- MySQL怎麼利用函式和觸發器實現非主鍵自增?MySql函式觸發器
- Oracle實現自增列(序列+觸發器實現、Identity Columns新特性、序列作為預設值)Oracle觸發器IDE
- 觸發器實現表資料自動更新觸發器
- Vue實現自動觸發功能Vue
- 禁止oracle表的觸發器triggerOracle觸發器
- Oracle開發基礎-觸發器Oracle觸發器
- MySQL使用觸發器MySql觸發器
- (精華)2020年7月20日 ASP.NET Core 分散式自增Id元件(解決自動分配機器Id、時間回撥問題)ASP.NET分散式元件
- 【DBA】Relinking Oracle Home 常見問題 (Doc ID 2048232.1)Oracle
- 在After Insert觸發器中使用INSERT後,影響SCOPE_IDENTITY 問題觸發器IDE
- oracle儲存過程和觸發器Oracle儲存過程觸發器
- 【Azure Function】Azure Function中的Timer Trigger無法自動觸發問題Function
- MySQL觸發器的使用規則MySql觸發器
- SqlServer觸發器的建立與使用SQLServer觸發器
- 資料庫的觸發器的使用資料庫觸發器
- Android自帶Json庫使用引發的問題AndroidJSON
- postgresql 按小時分表(含觸發器)的實現方式SQL觸發器
- [App探索]JSBox中幽靈觸發器的實現原理探索APPJS觸發器
- 如何使用資料庫和Redis開發各系統獨立的自增ID生成器資料庫Redis
- Mybatis通用mapper獲得insert後的資料實體的自增IDMyBatisAPP
- WPF Command CanExecute 觸發一次的問題
- touch事件和click事件多次觸發的問題事件
- 25. 使用MySQL之使用觸發器MySql觸發器
- MySQL自增列ID的面試題MySql面試題
- 支付寶支付回撥觸發問題
- window.onload 觸發時機問題
- CheckBox、ToggleSwitch 程式碼修改 自動觸發 onclick的問題,把onclick的邏輯 寫在onmouseup裡 解決問題
- MySQL自增主鍵跳號問題MySql
- 快速解決mongodb出現id重複問題MongoDB
- Seata-AT模式:MySQL自增ID的場景下推薦在 Mybatis 中使用 useGeneratedKeys模式MySqlMyBatis
- 【Oracle】Oracle wrong result一則(優化器問題)Oracle優化
- Laravel 可以修改預設的自增ID開始值了Laravel
- PostgreSQL LIST分割槽實現:繼承表+函式+觸發器。SQL繼承函式觸發器
- Oracle 19c 利用觸發器在資料庫啟動後自動開啟 PDBOracle觸發器資料庫
- 攔截器的使用問題