Php 防止MySQL双插入

Php 防止MySQL双插入,php,mysql,sql,schema,Php,Mysql,Sql,Schema,我有一张桌子,看起来差不多 Name | Lastname | ID | Date 如果某个人的姓名、姓氏和ID已经存在,而没有运行额外的查询来搜索他,是否有办法阻止数据库运行insert函数?在列上添加一个唯一的约束 ALTER TABLE TableName ADD CONSTRAINT tb_uq UNIQUE (ID, LastName) 一旦它被实现,如果您试图插入一个ID和LastName已经存在的值,它将抛出一个异常。范例 INSERT INTO tableName (ID,

我有一张桌子,看起来差不多

Name | Lastname | ID | Date 

如果某个人的姓名、姓氏和ID已经存在,而没有运行额外的查询来搜索他,是否有办法阻止数据库运行insert函数?

在列上添加一个
唯一的
约束

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

似乎正是我需要的!谢谢如果你想让查询正常地失败,你也可以在最后再添加一个子句“ON DUPLICATE KEY UPDATE ID=ID;”。我倾向于让它不正常地失败,这样你就可以在应用程序中处理它,但这一切都取决于用户intentions@Simonatmso.net是的,这完全取决于用户
:)
@Simonatmso.net