我有一个具有唯一字段uniq_field的表。哪种添加方式更好--先检查是否有唯一值的记录,还是直接添加记录,mysql自己检查?
发布于 2011-03-12 14:57:35
这取决于您在发生重复情况时将采取的操作
可以在这样的伪代码中显示可能的解决方案
switch action
case "do nothing":
INSERT IGNORE
case "delete existing then add new one":
REPLACE INTO
case "update existing":
ON DUPLICATE UPDATE
default:
select first and then apply necessary logic发布于 2011-03-12 14:56:47
这取决于您希望如何在代码中处理它。
如果您只想确保该元素存在,则可以执行所谓的插入时重复键更新-这意味着如果该行已经存在,则将其替换-但如果它不存在,则将其更新。
有关该主题的更多信息,请单击此处:http://dev.mysql.com/doc/refman/5.1/en/insert-on-duplicate.html
发布于 2011-03-12 15:11:57
在这张桌子上
+--------+---------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------+---------+------+-----+---------+-------+
| id | int(11) | NO | PRI | 0 | |
| unique | int(11) | NO | UNI | NULL | |
+--------+---------+------+-----+---------+-------+此代码返回false
$result = mysql_query("insert into tab1 values(1, 1), (2, 1)");
echo ($result)?($result):"false";虽然此代码返回1
$result = mysql_query("insert into tab1 values(1, 1), (2, 2)");
echo ($result)?($result):"false";看起来,如果你想显示消息,那么你应该检查数据库中的值并显示一个错误。如果你不想显示真正的原因和错误,你可以直接查询。
https://stackoverflow.com/questions/5281098
复制相似问题