【问题标题】:Rename MySQL table name safely in Flyway script在 Flyway 脚本中安全地重命名 MySQL 表名
【发布时间】:2021-07-04 14:02:40
【问题描述】:

我将通过 Flyway SQL 脚本重命名 MySQL 8.0 表:

RENAME TABLE aaa TO bbb;

它应该在 env 上运行很多次 - 但这样的脚本不是幂等的,试图在第二次运行它时遇到错误:

SQL State  : 42S01
Error Code : 1050
Message    : Table 'bbb' already exists
Location   : db/migration/V7__blabla.sql (/usr/local/...)
Line       : 1
Statement  : RENAME TABLE aaa TO bbb

有人可以建议如何处理吗?

非常感谢!

【问题讨论】:

    标签: mysql sql flyway


    【解决方案1】:

    IF EXISTS

    使用IF EXISTS 子句。如果没有找到这样的表,该命令将停止,但没有任何效果。

    ALTER TABLE IF EXISTS name
    RENAME TO new_name 
    ;
    

    这个works in Postgres。我不了解 MySQL。

    【讨论】:

    猜你喜欢
    • 2016-06-05
    • 2012-09-20
    • 1970-01-01
    • 2023-03-13
    • 2013-01-16
    • 2020-02-01
    • 2012-10-04
    • 1970-01-01
    相关资源
    最近更新 更多