微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

mysql和postgresql部分语法差异

1 UPDATE

1.1更新并返回

MysqL

SELECT temp_lo,temp_hi,prcp FROM UPDATE wheather SET temp_lo =

temp_lo+1,temp_hi = temp_lo+15 WHERE city = ‘San Francisco’;

Postgresql

UPDATE wheather SET temp_lo = temp_lo+1,temp_hi = temp_lo+15 WHERE city =

‘San Francisco’ RETURNING temp_lo,temp_hi;

1.2 表关联多字段更新

MysqL:无

Postgresql

UPDATE accounts SET (Contact_last_name,cONtact_first_name) = (SELECT

Last_name,first_name FROM salesmen WHERE salesmen.id = accounts.sales_id);

 

2 INSERT

2.1 插入并返回

MysqL:无

Postgresql

INSERT INTO distributors (did,dname) VALUES (DEFAULT,’XYZ’) RETURNING did;

2.2 插入冲突则更新

MysqL

INSERT INTO distributors (did,dname) VALUES (5,’Gizmo’),(6,’INc’) ON

DUPLICATE KEY UPDATE dname = EXCLUDED.dname;

Postgresql

INSERT INTO distributors (did,dname) VALUES (5,’Gizmo’),(6,’INc’) ON

CONFLICT (did) DO UPDATE SET dname = EXCLUDED.dname;

2.3 插入冲突则什么都不做

MysqL

INSERT IGnorE INTO distributors (did,dname) VALUES (9,’Design’);

Postgresql

INSERT INTO distributors (did,dname) VALUES (9,’Design’) ON CONFLICT ON

CONSTRAINT distributors_pkey DO nothing;

3 SELECT

4 DELETE

4.1 删除并返回删除内容

MysqL:无

Postgresql

DELETE FROM tasks WHERE status = ‘DONE’ RETURNING *;

 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐