重复密钥在SQLite中不起作用 [英] On Duplicate Key not working in SQLite

查看:81
本文介绍了重复密钥在SQLite中不起作用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在我的表中, 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
文本(id,text)
VALUES
(150574,
(SELECT
CASE
WHEN存在(SELECT 1 FROM text WHERE id = 150574)
THEN'good'
ELSE'你好'
END


<参考: http:// www。 .sqlite.org / lang_insert.html


In my table, id is the primary key, but this code not working in sqlite3:

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

Please help me.

解决方案

INSERT .... ON DUPLICATE don't exist in SqLite. But you can use INSERT OR REPLACE to achieve the effect like the following.

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
         )
    )

Ref: http://www.sqlite.org/lang_insert.html

这篇关于重复密钥在SQLite中不起作用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆