我试图在MySQL表中插入一行,条件是行本身必须是唯一的。
例如,行应该有idnameaddress,但不能有名称和地址重复的insert。
我试着在插入之前进行选择,以确保找不到结果,但它似乎不起作用。
在插入以下内容之前,我正在尝试执行此操作:

SELECT * FROM locations WHERE cityId = $cityId AND countyId = $countyId AND stateId = $stateId AND countryId = $countyId AND district = $district;

编辑:
所有这些字段都允许复制,但不能同时复制所有字段。

最佳答案

最干净的解决方案是对cityId、countyId、stateId、countryId、districtId设置UNIQUE约束,然后检查insert语句是否成功。
快速测试:

ALTER TABLE your_table_here ADD UNIQUE INDEX(cityId, stateId, countryId, countyId, districtId);

然后重新运行插入查询。如果遇到重复,它将失败,您可以在应用程序中处理。

关于php - 如何确保MySQL行是唯一的?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3124793/

10-11 03:18