Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Menjana Lajur Jujukan Berdasarkan Kunci Asing dalam MySQL?
MySQL: Menjana Lajur Jujukan Berdasarkan Kunci Asing
Dalam pangkalan data lama, menambah lajur jujukan yang merekodkan susunan berangka untuk setiap asing kunci boleh meningkatkan pengambilan data dan organisasi. Katakan anda mempunyai jadual berikut:
ID | ACCOUNT | some_other_stuff |
---|---|---|
1 | 1 | ... |
2 | 1 | ... |
3 | 1 | ... |
4 | 2 | ... |
5 | 2 | ... |
6 | 1 | ... |
Matlamatnya ialah untuk mencipta lajur SEQ yang meningkat secara berasingan untuk setiap AKAUN. Ini akan menghasilkan jadual berikut:
ID | ACCOUNT | SEQ | some_other_stuff |
---|---|---|---|
1 | 1 | 1 | ... |
2 | 1 | 2 | ... |
3 | 1 | 3 | ... |
4 | 2 | 1 | ... |
5 | 2 | 2 | ... |
6 | 1 | 4 | ... |
Untuk mencapai ini, anda boleh menggunakan pencetus 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;
Pencetus ini memastikan bahawa setiap baris baharu yang dimasukkan ke dalam jadual jadual saya mendapat nombor urutan unik berdasarkan AKAUN berkaitan.
Atas ialah kandungan terperinci Bagaimana untuk Menjana Lajur Jujukan Berdasarkan Kunci Asing dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!