[SQL]如果Key不存在就新增记录,存在就更新记录

2021-01-06 750点热度 0人点赞 0条评论

需求:

根据某个主键查询,如果存在某条记录,就更新这条记录,否则新增一条记录

假设student表,结构如下

+-------------+--------------+------+-----+---------+-------+
| Field       | Type         | Null | Key | Default | Extra |
+-------------+--------------+------+-----+---------+-------+
| id          | int          | NO   | PRI | NULL    |       |
| age         | int          | YES  |     | NULL    |       |
| name        | varchar(255) | YES  |     | NULL    |       |
+-------------+--------------+------+-----+---------+-------+

假设记录是id=1, name='Terry', age=20

MySQL的写法
--MySQL,ID是主键,如果存在1就更新,否则新建

INSERT INTO student (id, name, age) VALUES(1, "Terry", 20) ON DUPLICATE KEY UPDATE    
name="Terry", age=20
Oracle写法
insert into STUDENT (ID, NAME, AGE) select 1, 'Terry', 20 from dual where not exists (select * from STUDENT where ID=1)

 

admin

这个人很懒,什么都没留下

文章评论

您需要 登录 之后才可以评论