首页 / MySQL / 正文

[MySQL]MySQL数据库中插入操作时先判断数据是否存在,不存在则插入数据,存在则更新数据

13188 发布于: 2018-01-17 读完约需3分钟

[MySQL]MySQL数据库中插入操作时先判断数据是否存在,不存在则插入数据,存在则更新数据

方案一

根据条件查询判断记录是否存在,如下:

IF (SELECT COUNT(*) FROM beta WHERE name = 'John' > 0)
  UPDATE alfa SET c1=(SELECT id FROM beta WHERE name = 'John')
ELSE
BEGIN
  INSERT INTO beta (name) VALUES ('John')
  INSERT INTO alfa (c1) VALUES (LAST_INSERT_ID())
END

方案二

使用 REPLACE 关键字做写入操作,如果记录存在则更新,不存在则插入,如下:

REPLACE INTO `transcripts`
SET `ensembl_transcript_id` = 'ENSORGT00000000001',
`transcript_chrom_start` = 12345,
`transcript_chrom_end` = 12678;

方案三

INSERT INTO `table` (value1, value2) 
SELECT 'stuff for value1', 'stuff for value2' FROM `table` 
WHERE NOT EXISTS (SELECT * FROM `table` 
      WHERE value1='stuff for value1' AND value2='stuff for value2') 
LIMIT 1

版权声明:本作品系原创,版权归码友网所有,如未经许可,禁止任何形式转载,违者必究。

上一篇: [MySQL]MySQL数据库如何按某列分组排序后查询每个分组的最后一条数据?

下一篇: [MySQL]MySQL数据库中从百万条数据表中随机10条数据的查询方式有哪些?

本文永久链接码友网 » [MySQL]MySQL数据库中插入操作时先判断数据是否存在,不存在则插入数据,存在则更新数据

分享扩散:

发表评论

登录用户才能发表评论, 请 登 录 或者 注册