这是我的表架构:
downloadstbl
_id int not null auto
url text not null
filename text not null
date text not null)
我想只在表格中没有相同网址的行时插入一行。
例如,如果存在以下行:
_id=1
url="http://google.com/img.jp"
filename="img.jp"
date="11/03/2012"
然后,如果我尝试插入另一行有url =“http://google.com/img.jp”的行,则不会插入sql语句以避免同一个远程文件的重复行。
我知道我可以通过首先执行SELECT并检查行是否已经存在来完成此操作,但是我想检查在插入点是否可以使事情更加健壮/干净。
答案 0 :(得分:2)
您可以(并且出于数据完整性原因)通过将url
添加到表的SQL create语句或仅添加UNIQUE(url)
来向unique
列添加唯一约束not null
。当插入URL已经在表中的行时,这将导致插入失败。然后,您可以使用insertWithOnConflict
检查插入的结果。
答案 1 :(得分:1)
首先,我会将UNIQUE
关键字添加到url
列。
然后,在插入时,请使用此INSERT OR IGNORE
代替INSERT
。