php mySQL 检查唯一列是否需要唯一值?

php mySQL check for unique value needed on Unique col?

是否有必要在将其插入数据库之前检查唯一值?如果 unique_col 预定义为 Unique Keys

例如

 SELECT unique_col FROM table WHERE unique_col != unique_val 
 INSERT INTO table (unique_col) VALUE(:unique_value)

有必要检查吗?这取决于您如何处理错误。

一般来说,数据库会无论如何进行检查,因此您的额外检查是多余的。如果您进行检查,另一个线程可能会在您的检查和 insert 之间插入相同的值,因此您仍然会遇到错误(这称为竞争条件)。

所以,不要进行检查,而是检查错误。