的價值,我想有一個觸發器用於插入記錄執行以下操作:MySQL的觸發器來現場升級到ID
# pseudocode
if new.group_id is null
set new.group_id = new.id
else
# don't touch it
end
更清楚:說我有一個表有三列:id
主鍵,group_id
int,value
varchar。
當我與group_id
這樣的插入:
INSERT INTO table(value, group_id) VALUES ('a', 10)
我想有:
id | group_id | value
---+----------+------
1 | 10 | a
但是當我忽略group_id
:
INSERT INTO table(value) VALUES ('b')
應該自動設置爲該記錄的id
:
id | group_id | value
---+----------+------
2 | 2 | b
觸發器可能嗎? (我知道插入,但有觸發的還要好後我可以更新記錄。)
這很糟糕。即使在2016年 – 2017-01-05 08:52:17
@AA_PV,這可以通過獨立的序列對象來解決,就像他們在Oracle中一樣。自2003年以來,這一直是MySQL的一項開放功能請求:https://bugs.mysql.com/bug.php?id = 1625但是在Oracle中,要使用序列,您必須*在應用程序代碼中調用它,意味着將* every * INSERT的代碼寫入您想擁有auto-inc主鍵的表中。或者爲每個*這樣的表寫一個觸發器。 MySQL用戶喜歡能夠跳過寫這麼多觸發器,而只是聲明`AUTO_INCREMENT`作爲列選項。 – 2017-01-05 15:31:49