dd6*_*619 8 database sqlite android
我有一个数据库,我在其中创建了一个名为"SectionDetails"的表.在此表中,我已将"id"设置为具有AUTOINCREMENT property 的主键.我将数据插入此表中.
但是,我来到了我需要检查我插入的记录是否已经存在的情况(如果记录存在,则将其替换为相同的值或跳过它,如果记录不存在则插入新的记录).
但是当我尝试插入具有相同列值的记录时,它会增加主键并再次插入相同的行而不是替换.
所以,我的问题是 - sqlite"插入或替换"是否适用于AUTOINCREMENT主键?
我正在使用以下查询:
insert or replace into SectionDetails(Name,Month,Title,Url)values('Deepak',"August","None","www.dd619.com")
Run Code Online (Sandbox Code Playgroud)
这里的列"id"没有出现,因为它是一个带有AUTOINCREMENT属性的主键.
laa*_*lto 19
您需要向其他列添加一些唯一约束才能使其工作,即使这样您也会更改ID.
insert or replace实际上是一个insert解决on conflict replace冲突的战略.也就是说,当插入会违反某些约束时,首先删除所有冲突的行,然后才进行插入.autoincrement然后,该机制将为您生成新的ID值.
有关更多信息,请访问:http://www.sqlite.org/lang_conflict.html
| 归档时间: |
|
| 查看次数: |
7999 次 |
| 最近记录: |