2017-02-01 5 views
0

Довольно простое приложение Spring, выполненное для работы с использованием разных источников данных. В этом у меня есть LiquiBase переключающий набор, который включает в себя этот SQL:Liquibase: postgres failed, 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. Хотя это и устранило мою проблему.