如果有两个或更多条件,我想知道如何使用REPLACE:
例:
如果我有表table1以下记录:
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 INTO table1 (name,Type,InitialValue,FinalValue) VALUES
(‘A’,3,50,90 ) WHERE name=’A’ AND Type = 3 ;
错误是:
near “WHERE”: Syntax error Unable to execute statement
我怎样才能实现目标?请帮忙.
解决方法 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)
编辑:
快速说明 – REPLACE总是DELETES然后INSERT,所以在重载时使用它永远不是一个好主意,因为它在删除时需要独占锁定,然后在插入时
一些数据库引擎有
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
总结以上是内存溢出为你收集整理的如果有两个或更多条件,如何在SQLite中使用REPLACE命令全部内容,希望文章能够帮你解决如果有两个或更多条件,如何在SQLite中使用REPLACE命令所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)