android - 如何在不更改主键的情况下执行 SQL Insert 或 Replace like operator?

标签 android sql database sqlite

我正在尝试向 SQLite 数据库表中插入一条记录。该表在列“URL”和主键自动递增整数“_id”上具有唯一约束。

我使用插入或替换作为我的冲突解决方案,因为我需要保留新数据。然而,这种方法增加了主键并弄乱了其他表中的一些外键。

在不更新 _id 的情况下覆盖记录的最佳方法是什么?

最佳答案

简单的答案是停止使用 Replace 语法。这会导致删除旧记录,然后添加新记录……这会增加您的索引。

改为使用 UPDATE 语法来处理冲突

编辑:

如果您真的偏爱 Replace 语法,那么它是有代价的。您将需要编写额外的代码,将所有先前出现的旧索引更新为新索引。不太难,但这将纠正同步索引的问题

文档 [在页面下方的 REPLACE 部分下列出]:http://www.sqlite.org/lang_conflict.html

关于android - 如何在不更改主键的情况下执行 SQL Insert 或 Replace like operator?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5223730/

相关文章:

php - 如何更新sql中具有重复键的表?

mysql - Zabbix 3.0 MySQL 数据库我找不到数据库/mysql schema.sql

sql-server - SQL 服务器忽略 Liquibase sql 文件命令

android - 服务还是绑定(bind)服务?

java - Android - 第一个应用程序onCreate null参数

sql - 如何无限查询查询,直到在 SQL Server 中达到条件

ruby-on-rails - ruby rails : before_save fields to lowercase

php - 推送通知覆盖以前的通知

java - syncAdapter、services、loaders、providers 和 asynctask 之间的混淆?

mysql - 如何向现有表添加外键?