PostgreSQL update set from 两表联合更新,注意与其它数据库更新语法有差别

  最近用PostgreSql数据库进行表关联更新时,发现与之前用的Sql Server 和My Sql语法有很大差别,稍微不注意,很容易出错。

  PostgreSql表更新时,两个表只允许一个表起别名,一般是被更新的表不起别名,查询的表起别名

  正确的写法如下

SELECT * from pro.book;
SELECT * from pro.book_detail;

UPDATE pro.book_detail     
set  book_name=tab1.book_name
from pro.book  tab1     
where  book_id=tab1."id" and  tab1.book_name!='';

PostgreSQL update set from 两表联合更新,注意与其它数据库更新语法有差别_第1张图片PostgreSQL update set from 两表联合更新,注意与其它数据库更新语法有差别_第2张图片

  错误写法如下

PostgreSQL update set from 两表联合更新,注意与其它数据库更新语法有差别_第3张图片

你可能感兴趣的:(PostgreSQL update set from 两表联合更新,注意与其它数据库更新语法有差别)