2017-02-01 29 views
0

一个非常简单的Spring应用程序,它使用不同的DataSources来运行。 在这里面我有一个liquibase变化,一套涉及此SQL:Liquibase:postgres失败,mysql - ok

<sql> 
    UPDATE home_description hd 
    INNER JOIN home h ON 
    hd.id = h.description_id 
    SET hd.home_id = h.id 
</sql> 

虽然此语句运行完全正常的MySQL数据库,它不会对PostgreSQL的工作。

这是例外:

Error: org.postgresql.util.PSQLException: ERROR: syntax error at or near "INNER" 
    Position: 46 
liquibase.exception.DatabaseException: org.postgresql.util.PSQLException: ERROR: syntax error at or near "INNER" 

有没有办法改写这个声明,MySQL和PostgreSQL都接受吗?谢谢!

+0

[这个回答使用'UPDATE'加入](http://stackoverflow.com/questions/7869592/how-to-do-an-update-join-in-postgresql)可能会有所帮助。 – tadman

+0

@tadman我不是很强大的SQL。那里列出的解决方案是否可以同时使用mysql和postgresql? –

回答

0
<sql> 
UPDATE home_description AS hd 
SET home_id = h.id 
FROM home AS h 
WHERE hd.id = h.description_id 
</sql> 

这适用于PostgreSql,但不适用于MySql。虽然它解决了我的问题。