我想編寫一個觸發器來檢查列中的最高值(表格由4個雙列組成,其中一個作爲主鍵(該字段中的值應該始終大於上一個值條目))。現在有一種方法可以將id列的頂端值與應該插入的新值進行比較,如果新ID的值等於或低於之前的頂端值(當然使用sql觸發器),則回滾事務。 預先感謝您。插入比較的SQL觸發器
0
A
回答
0
我發現的一種最簡單的方法是檢查您是否得到任何結果。我的意思是這樣的:
if (SELECT COUNT(*) FROM tbl_name WHERE id = id_you_want_check >= 1) {
rollback;
}
如果你知道在mysql或任何DBMS中使用觸發器(看你的DBMS文檔)。 PS:如同Colin說的那樣,下次發佈你的SQL DBMS很容易爲你找到合適的解決方案。 ;)
+0
建議的解決方案僅測試PK值是否已被使用。 OP希望新ID大於正在使用的最大ID。 – Tim 2013-05-02 10:49:06
+0
然後他應該用'SELECT MAX(pk)'來改變'SELECT COUNT(*)'。像這樣:'if(SELECT MAX(pk)FROM tbl_name == id_you_want_check)...'對不起,我的錯誤理解。 – DaGLiMiOuX 2013-05-02 10:54:58
相關問題
- 1. SQL Server 2012中,觸發器,在插入比較行和刪除
- 2. 插入比較值併發送郵件的觸發器
- 3. T-SQL插入觸發器
- 4. SQL觸發器,從插入
- 5. SQL Server:插入觸發器
- 6. 插入sql觸發器
- 7. SQL插入觸發器
- 8. SQL觸發器插入
- 9. SQL - 觸發器插入件
- 10. sql server觸發器插入
- 11. sql觸發器 - 想要比較現有的行值與插入的值
- 12. 觸發器比較從插入的表和插入前的表中的行
- 13. SQL Server 2008觸發器:通過輸入鍵比較數據
- 14. SQL服務器插入觸發器
- 15. 插入問題後的SQl觸發器
- 16. 批量插入後的SQL觸發器
- 17. SQL Server的觸發器,插入串
- 18. 插入後的SQL Server觸發器
- 19. SQL觸發器和插入的代碼
- 20. 插入更新後的SQL觸發器
- 21. 插入觸發器之前的SQL
- 22. SQL服務器觸發插入
- 23. Oracle SQL觸發器插入/更新---
- 24. 插入更新觸發器後PL/SQL
- 25. 之後SQL Server插入觸發器
- 26. 在pl/sql中插入觸發器
- 27. 插入SQL Server 2000觸發器
- 28. sql觸發器更新並插入
- 29. 在sql server中插入觸發器後
- 30. SQL Server觸發器無法插入
您正在使用哪些DBMS?請適當標記問題。 – 2013-05-02 10:02:06
我正在使用mySql – user1033698 2013-05-02 10:10:05
這聽起來像是一個特殊的和脆弱的設計,使一個double而不是一個整數是主鍵,並試圖使它像一個自動增量值或序列。但是你的觸發器只需要下一個ID大於MAX(yourDoublePrimaryKeyValue)。 – Tim 2013-05-02 10:11:41