【发布时间】:2015-09-26 16:08:21
【问题描述】:
在将其插入数据库之前是否需要检查唯一值?如果unique_col 预定义为Unique Keys。
例如
SELECT unique_col FROM table WHERE unique_col != unique_val
INSERT INTO table (unique_col) VALUE(:unique_value)
【问题讨论】:
在将其插入数据库之前是否需要检查唯一值?如果unique_col 预定义为Unique Keys。
例如
SELECT unique_col FROM table WHERE unique_col != unique_val
INSERT INTO table (unique_col) VALUE(:unique_value)
【问题讨论】:
需要检查吗?这取决于您如何处理错误。
一般来说,数据库会进行检查无论如何,因此您的额外检查是多余的。如果您进行检查,另一个线程可能会在您的检查和insert 之间插入相同的值,因此您仍然会收到错误(这称为竞争条件)。
所以,不要进行检查,而是检查错误。
【讨论】: