【问题标题】:Translate MySQL query to PostgreSQL将 MySQL 查询转换为 PostgreSQL
【发布时间】:2022-01-12 10:01:07
【问题描述】:

redmine 中的插件 DMSF 有问题,我找到了一个可以解决问题的 SQL 查询链接,但是我使用的是 PostgreSQL,该查询直接在 f.project_id 上返回语法错误。

MySQL 查询是:

update dmsf_files f 
set f.project_id = (select d.project_id from dmsf_folders d where d.id = f.dmsf_folder_id and d.system = 1) 
where (select dmsf_folders.system from dmsf_folders where dmsf_folders.id = f.dmsf_folder_id) = 1;

PostgreSQL 等价物应该是什么?

我找到了一些在线数据库语法翻译器,但不幸的是根本没有成功。

【问题讨论】:

  • 遇到什么语法错误?

标签: mysql sql database postgresql


【解决方案1】:

SET 子句的左侧删除别名:

update dmsf_files f 
set project_id = (select d.project_id from dmsf_folders d
                  where d.id = f.dmsf_folder_id and d.system = 1) 
where (select dmsf_folders.system from dmsf_folders
       where dmsf_folders.id = f.dmsf_folder_id) = 1;

【讨论】:

    猜你喜欢
    • 2019-06-22
    • 2021-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-08
    相关资源
    最近更新 更多