仅当两列关系不重复时才插入表中

时间:2011-09-13 16:03:44

标签: php mysql

我有一个包含'node_id'和'language'列的语言表。

|| *nid* || *language* ||
|| 8 || Chinese ||
|| 8 || Portuguese ||
|| 8 || German |

我想在其中插入新语言,但前提是该特定nid还没有类似的语言条目。因此,根据上面的例子,添加nid> 8和语言>中文没有效果。

我该如何做到这一点?是否存在一种类似的查询,或者我应该在插入行之前先检查PHP / MYSQL?

2 个答案:

答案 0 :(得分:4)

只需在MySQL数据库中的一对列上放置一个UNIQUE约束。尝试添加重复行的任何查询都将失败。

答案 1 :(得分:1)

您可以使用其中两列来执行唯一键索引:

CREATE TABLE lang(   nid INT NOT NULL,   language VARCHAR(45)NOT NULL,   UNIQUE INDEX index_langnid ASC,language ASC));