色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

mysql多個表共用自增id

錢良釵2年前10瀏覽0評論

在MySQL中,每個表一般都會設置自增id來作為主鍵,以便于唯一標識每一條數據。但是,在一些特殊的情況下,我們可能需要多個表共用一個自增id。

下面,我們介紹一種實現多個表共用自增id的方法。

CREATE TABLE id_generator (
id INT NOT NULL AUTO_INCREMENT,
PRIMARY KEY (id)
);

我們創建了一個名為id_generator的表,用來生成自增id。接下來,我們創建需要共用自增id的表,并在表中設置一個新的字段,以引用id_generator表中的自增id。

CREATE TABLE table1 (
id INT NOT NULL,
name VARCHAR(20),
PRIMARY KEY (id),
INDEX (id)
);
CREATE TABLE table2 (
id INT NOT NULL,
age INT,
PRIMARY KEY (id),
INDEX (id)
);

在上述代碼中,我們在每個表中都設置了一個名為id的字段,并設置其為主鍵,并且在id字段上創建了索引,以提高查詢效率。

接下來,我們需要為每個表創建一個觸發器,用來插入新記錄時自動從id_generator表中獲取自增id,并將其賦值給表中的id字段。

CREATE TRIGGER tr_insert_table1
BEFORE INSERT ON table1
FOR EACH ROW BEGIN
INSERT INTO id_generator (id) VALUES (NULL);
SET NEW.id = LAST_INSERT_ID();
END;
CREATE TRIGGER tr_insert_table2
BEFORE INSERT ON table2
FOR EACH ROW BEGIN
INSERT INTO id_generator (id) VALUES (NULL);
SET NEW.id = LAST_INSERT_ID();
END;

在上述代碼中,我們為table1和table2分別創建了一個觸發器,在每次插入新記錄時,都會先向id_generator表中插入一個新的自增id,并將此id賦值給當前記錄的id字段。

現在,我們就完成了多個表共用自增id的實現。