MySQL:建立依賴外部欄位的序列列
在資料庫管理領域,有時必須修改現有的結構以適應新的數據需求。需要根據特定外鍵將序號指派給記錄時就是這種情況。
考慮一個包含 ID、ACCOUNT 和 some_other_stuff 欄位的表。目標是引入一個新列SEQ,它針對每個不同的ACCOUNT 值唯一遞增,如下所示:
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 的解:
MySQL觸發器為我們提供了一個強大的機制,可以根據資料操作事件自動執行預先定義的操作。在這種情況下,可以使用觸發器在記錄插入期間以適當的值填充 SEQ 列。觸發器代碼:
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;
細分:
以上是如何在MySQL中實作依賴外鍵的序列列?的詳細內容。更多資訊請關注PHP中文網其他相關文章!