insertOrThrow如何使用UNIQUE约束?

时间:2013-11-29 05:14:53

标签: android sql database unique

如果我在SQL中设置了一个带有UNIQUE约束的列,那么当我使用“insertOrThrow()”时,如果我尝试插入该列中已存在的值,它是否会抛出错误?

基本上我正在尝试做的是扫描日志ID(即“1020030”),我想知道在以后使用该应用程序时扫描相同的ID。因此,如果我将标识为“_id”的列标记为UNIQUE,然后尝试使用insertOrThrow()命令插入值,那么如果该值存在,它是否会因为我将其标记为UNIQUE而抛出?谢谢!

1 个答案:

答案 0 :(得分:3)

是的,它将满足您的目的。检查insertOrThrow上的android文档。顺便说一句,如果您将某个列定义为UNIQUE,那么对于任何重复插入都将导致异常 按照正常的数据库概念投掷。

请检查sqlLite doc.

  

UNIQUE约束类似于PRIMARY KEY约束,但单个表可能具有任意数量的UNIQUE约束。对于表上的每个UNIQUE约束,每行必须在UNIQUE约束标识的列中具有唯一的值组合。与PRIMARY KEY约束一样,出于UNIQUE约束的目的,NULL值被认为与所有其他值(包括其他NULL)不同。如果INSERT或UPDATE语句尝试修改表内容,以便两个或多个行在一组受UNIQUE约束限制的列中具有相同的值,则会违反约束。

因此,由于违反约束,你将获得可抛弃的优势,它将满足你的目的。

注意:UNIQUE约束允许值为NULL。但是,与参与UNIQUE约束的任何值一样,每列只允许一个空值。