如果有两个或更多条件,如何在SQLite中使用REPLACE命令
我想更新一行,如果它存在于表中,否则在单个查询中将其插入SQLite中.从
SQLite documentation我发现我们可以使用REPLACE命令来实现这一目标.
如果有两个或更多条件,我想知道如何使用REPLACE: 例: Name Type InitialValue FinalValue A 1 20 40 B 2 23 50 A 3 40 60 C 3 54 70 这里名称和类型的组合将是唯一的. 我想设置initialvalue = 50和finalvalue = 90,其中name = A和Type = 3(如果存在),否则插入它. 我正在使用此命令,但它给出了此错误:
错误是:
我怎样才能实现目标?请帮忙. 解决方法replace就像insert一样,它只是检查是否有重复的键,如果是的话它会删除该行,并插入新行,否则只会插入 如果存在(名称,类型)的唯一索引并且键入以下命令,则可以执行此操作 REPLACE INTO table1 (Name,FinalValue) VALUES ('A',90 ) 并且已存在Name =’A’且Type = 3的行将被替换 http://www.sqlite.org/lang_createindex.html CREATE UNIQUE INDEX idx_name_type ON table1(Name,Type) 编辑: 一些数据库引擎有 INSERT ... ON DUPLICATE KEY UPDATE ... sqlite 3没有,但如果插入失败,你可以尝试try}} catch http://blog.client9.com/2007/11/sqlite3-and-on-duplicate-key-update.html SQLite UPSERT – ON DUPLICATE KEY UPDATE (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |