我试图在MySQL表中插入一行,条件是行本身必须是唯一的。
例如,行应该有id
、name
和address
,但不能有名称和地址重复的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/