您可以使用
Triggers
这样地
首先,我们需要创建一个表
next_id
CREATE TABLE next_id (
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY
);
初始化ID表
INSERT INTO next_id VALUES (NULL);
现在为每个表创建一个触发器
-
object1
CREATE TRIGGER before_insert_object1
BEFORE INSERT ON object1
FOR EACH ROW
BEGIN
DECLARE new_id INT;
SET new_id = (SELECT id FROM next_id FOR UPDATE);
SET NEW.id = new_id;
UPDATE next_id SET id = id + 1;
END;
-
object2
CREATE TRIGGER before_insert_object2
BEFORE INSERT ON object2
FOR EACH ROW
BEGIN
DECLARE new_id INT;
SET new_id = (SELECT id FROM next_id FOR UPDATE);
SET NEW.id = new_id;
UPDATE next_id SET id = id + 1;
END;
或者,您可以这样使用UUID
CREATE TABLE object1 (
id CHAR(36) NOT NULL PRIMARY KEY,
mass INT NOT NULL
);
CREATE TABLE object2 (
id CHAR(36) NOT NULL PRIMARY KEY,
angles INT NOT NULL
);
使用UUID插入数据
INSERT INTO object1 (id, mass) VALUES (UUID(), 5);
INSERT INTO object2 (id, angles) VALUES (UUID(), 3);