相关文章推荐
俊秀的遥控器  ·  PDOException: ...·  3 月前    · 
气势凌人的核桃  ·  UI scrambling, ...·  3 月前    · 
不要命的帽子  ·  merge into用法详解·  3 月前    · 
威武的茴香  ·  SQL中merge into用法_sql ...·  3 月前    · 
挂过科的葡萄  ·  使用MERGE ...·  3 月前    · 
忐忑的便当  ·  Chase ...·  1 年前    · 

今天在写代码的过程中遇到一个问题,就是需要用一张表的数据去更新另一张表某个字段,由于本人之前常用的是MySQL数据库,记得可以通过join的方式更新。结果发现 postgre数据库竟然不可以,所以特意记录一下两种数据库,更新数据的脚本

1:MySQL脚本

UPDATE TABLE A JOIN table2 b ON A.busid = b.busid 
SET A.district = b.district;

2:PostgreSQL脚本

UPDATE TABLE A 
	SET ( district ) = ( SELECT district FROM table2 b WHERE A.site = b.site ) 
WHERE
	bustype = 1;
UPDATE TABLE A 
	SET ( column01, colum02, column03 ) = (
SELECT
	b.column01, b.column02,
	b.column03 
	table2 b 
WHERE
	A.COLUMN = b.COLUMN)

③ 、定义行号,删除重复数据

DELETE 
    tableA 
WHERE
    ID IN (
SELECT ID 
    ( SELECT ROW_NUMBER () OVER ( PARTITION BY column01, column02 ), ID FROM tableA ) AS T 
WHERE
    T.ROW_NUMBER > 1