【发布时间】:2014-03-07 13:06:42
【问题描述】:
CREATE TABLE item(
code TINYINT UNSIGNED NOT NULL,
name CHAR(20) NOT NULL,
UNIQUE KEY(name, code)) ENGINE = INNODB
CREATE TABLE buffer(
code TINYINT UNSIGNED NOT NULL,
name CHAR(20) NOT NULL,
PRIMARY KEY(name, code)) ENGINE = INNODB
我有上面的表格。我想以最快的方式执行以下操作:
在表 buffer 中添加新的 code and name pair 时,我想确保这对不存在于 2 个表中的任何一个上。
有什么真正快速的方法可以做到这一点,或者我必须先搜索表item,然后搜索表buffer,然后添加项目?
【问题讨论】:
-
你能说得具体点吗?
-
如果您查看the accepted answer here 80% 的问题已得到解答,您只需在此处转换答案以满足您的需求。
-
把它扔到另一个方向,你不能在
item表中添加一列buffered BOOLEAN并将其全部放在一个表中吗?这将是解决此问题的最优化方法,因为您已经拥有一个可以强制执行您要求的唯一密钥。 -
这是对的,但缓冲区包含可能无效的数据...
标签: mysql