对于MySQL中的我的user
表,在输入新的用户ID和&之前避免重复的用户ID,我检查是否存在类似的ID。对我来说有3种方法:
查询新的用户ID(SELECT ...
)并检查返回的0
行。如果存在行,则请求新的用户ID,否则为(INSERT...
)
在userid
表中生成UNIQUE
列user
,如果INSERT...
行受影响,则直接0
,然后请求新的用户ID
在userid
表格中设置UNIQUE
列user
,如果INSERT...
,则直接mysqli_errno ($link)==1062
,然后请求新的用户ID
我目前使用第一种方法,但它导致2次查询并打算切换到第二种方法。我在书中找到了第三种方法让我感到困惑!
我的问题是
答案 0 :(得分:1)
以下是我的答案:
第二种方法更适合重复进入吗?
是的,在我看来,第二种方法更好,如果您知道userid
将始终是唯一的,那么您应该将其设为unique
字段,MySQL
会自动处理它
是第二个&第三种方法相同或不同?
我认为两者都是相同的,MySQL
会在这些情况下抛出错误。
是否还有更好的方法可以防止重复输入最小数据库查询?
您可以将UNIQUE INDEX
放在此列上,这样会更快。
答案 1 :(得分:1)
1)复制应由您的数据库通过make unique
字段来处理。
2)当您尝试在唯一字段中插入相同的数据时,它会给您一个错误。错误就像 -
ERROR 1062 (23000): Duplicate entry '2147483647' for key 'UNIQUE'
3)因此,为避免此类错误,您必须检查代码中已有的数据。
<强>结论:强>
你必须使用1&amp;平行的2种方法是100%确保您的表中不存在重复的条目。