看起来你正在改变
ENUM
在第一个表上每次插入后,第二个表上的值?为什么不把它变成
foreign key constraint
这将需要您想放入表2中的任何值都必须具有表1中的值。它的效率也会高得多:
只是一个例子(
sqlfiddle link
):
CREATE TABLE category (
id INT PRIMARY KEY NOT NULL AUTO_INCREMENT,
description VARCHAR(50)
);
CREATE TABLE thing (
id INT PRIMARY KEY NOT NULL AUTO_INCREMENT,
cat_id INTEGER,
description VARCHAR(50),
FOREIGN KEY (cat_id) REFERENCES category(id)
);
INSERT INTO category (description)
VALUES
('Category 1')
,('Category 2');
INSERT INTO thing (cat_id, description)
VALUES
(1, 'Thing 1')
,(1, 'Thing 2')
,(2, 'Thing 3');
INSERT INTO thing (cat_id, description)
VALUES
(3, 'Imma Fail!')
如果您运行它,第三次插入将失败,因为没有
id
共3个
category
桌子