sqlite - 重复键在 SQLite 中不起作用

标签 sqlite duplicates primary-key

在我的表中,id是主键,但此代码在 sqlite3 中不起作用:

insert into text (id,text) VALUES(150574,'Hello') ON DUPLICATE KEY UPDATE 'text' = 'good'

请帮我。

最佳答案

INSERT .... ON DUPLICATE在 Sqlite 中不存在。但是你可以使用 INSERT OR REPLACE达到如下效果。

INSERT 
    OR REPLACE
INTO
    text (id, text)  
VALUES
    (150574,
        (SELECT
           CASE 
              WHEN exists(SELECT 1  FROM text WHERE id=150574)
              THEN 'good' 
              ELSE 'Hello' 
           END
         )
    )

引用:http://www.sqlite.org/lang_insert.html

关于sqlite - 重复键在 SQLite 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23622504/

相关文章:

iphone - iOS Sqlite3 删除查询不删除行

android - 如何从 SQLite 中检索特定列并将其显示在 Android 中的 ListView 表单中?

ruby-on-rails-3 - 带有 SQLite3::SQLException 的 Rails3:没有这样的列 HABTM

javascript - 在另一个文本元素中复制输入文本

entity-framework - 具有列序号 <> 主键序号的 Entity Framework 复合键定义

ios - NSFileManager 的 moveItemAtPath 是否为 :toPath:error method load the file being moved into memory?

duplicates - 如何删除重复项,但在 OpenOffice Calc 中为重复项保留第一个实例和一个空白单元格?

Grails 装置插件和功能测试重复数据

sql - 一个表怎么会违反它自己的主键索引呢?

mysql - MySQL中的 'insert if not exists'怎么办?