MySQL:根據外鍵產生序列列
在舊資料庫中,新增一個序列列,記錄每個外鍵的數字順序key 可以增強資料檢索和組織。假設您有下表:
ID | ACCOUNT | some_other_stuff |
---|---|---|
1 | 1 | ... |
2 | 1 | ... |
3 | 1 | ... |
4 | 2 | ... |
5 | 2 | ... |
6 | 1 | ... |
目標是建立一個為每個 ACCOUNT 單獨遞增的 SEQ 欄位。這將產生下表:
ID | ACCOUNT | SEQ | some_other_stuff |
---|---|---|---|
1 | 1 | 1 | ... |
2 | 1 | 2 | ... |
3 | 1 | 3 | ... |
4 | 2 | 1 | ... |
5 | 2 | 2 | ... |
6 | 1 | 4 | ... |
要實現此目的,您可以使用SQL 觸發器:
CREATE TRIGGER trg_mytable_bi BEFORE INSERT ON mytable FOR EACH ROW BEGIN DECLARE nseq INT; SELECT COALESCE(MAX(seq), 0) + 1 INTO nseq FROM mytable WHERE account = NEW.account; SET NEW.seq = nseq; END;
此觸發器可確保插入mytable 表中的每個新行都會得到基於相關帳戶的唯一序號。
以上是如何在MySQL中根據外鍵產生序列列?的詳細內容。更多資訊請關注PHP中文網其他相關文章!