在将其插入数据库之前是否需要检查唯一值?如果unique_col
预定义为Unique Keys
。
例如
SELECT unique_col FROM table WHERE unique_col != unique_val
INSERT INTO table (unique_col) VALUE(:unique_value)
答案 0 :(得分:1)
有必要检查吗?这取决于你如何处理错误。
一般情况下,数据库将进行检查,因此对您的部分进行额外检查是多余的。如果您进行检查,另一个线程可能会在您的支票和insert
之间插入相同的值,因此您仍然会收到错误(这称为竞争条件)。
所以,不要做检查,但要检查错误。