Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQLite-更新(不替换)(如果存在),否则插入_Sql_Sqlite_Case - Fatal编程技术网

SQLite-更新(不替换)(如果存在),否则插入

SQLite-更新(不替换)(如果存在),否则插入,sql,sqlite,case,Sql,Sqlite,Case,我试图将数据插入可能已经存在的sqlite数据库。如果它存在,我想添加到它(而不是替换!)。我真的不知道该怎么做 类似这样的内容(不确定我的语法是否正确) 在SQLite中,如果在表上定义了主键,则可以执行插入或替换,而不是常规的插入。如果表中的另一行已经存在,并且主键是您试图插入的,那么它将被覆盖 因此,如果您在表上创建了一个由word1和word2组成的复合主键,您可以执行以下操作: INSERT OR REPLACE INTO link (word1, word2, n) SELECT

我试图将数据插入可能已经存在的sqlite数据库。如果它存在,我想添加到它(而不是替换!)。我真的不知道该怎么做

类似这样的内容(不确定我的语法是否正确)


在SQLite中,如果在表上定义了主键,则可以执行
插入或替换
,而不是常规的
插入
。如果表中的另一行已经存在,并且主键是您试图插入的,那么它将被覆盖

因此,如果您在表上创建了一个由
word1
word2
组成的复合主键,您可以执行以下操作:

INSERT OR REPLACE INTO link (word1, word2, n)
SELECT 
    x.word1, x.word2, x.n + COALESCE(l.n, 0)
FROM ( SELECT '%s' AS word1, '%s' AS word2, %d AS n ) x
LEFT JOIN link l ON x.word1 = l.word1 AND x.word2 = l.word2
可能重复的
INSERT OR REPLACE INTO link (word1, word2, n)
SELECT 
    x.word1, x.word2, x.n + COALESCE(l.n, 0)
FROM ( SELECT '%s' AS word1, '%s' AS word2, %d AS n ) x
LEFT JOIN link l ON x.word1 = l.word1 AND x.word2 = l.word2