防止MySQL双重插入

时间:2013-04-02 12:43:09

标签: php mysql sql schema

我的桌子或多或少看起来像

Name | Lastname | ID | Date 

如果有NameLastnameID这样的人在没有运行搜索他的其他查询的情况下,是否有办法阻止数据库运行插入功能?

1 个答案:

答案 0 :(得分:13)

在列上添加UNIQUE约束

ALTER TABLE TableName ADD CONSTRAINT tb_uq UNIQUE (ID, LastName)

一旦实现,如果您尝试插入已存在ID和LastName的值,它将引发异常。示例

INSERT INTO tableName (ID, LASTNAME) VALUES (1, 'hello') // ok
INSERT INTO tableName (ID, LASTNAME) VALUES (2, 'hello') // ok
INSERT INTO tableName (ID, LASTNAME) VALUES (1, 'hello') // failed