flyway使用时SQL写法注意事项(if exists, if not exists的用法)
最近在使用flyway,由于有时会手动增加字段,造成项目部署时flyway报错无法启动。
现总结一下数据库表、字段、视图的免报错写法:
删除表,判断是否存在:
drop table if exists TABLE_NAME;
创建表,判断是否不存在(这个我一般不用,因为创建表之前一般要先删除表):
create table if not exists TABLE_NAME;
增加字段,判断是否不存在:
alter table TABLE_NAME add if not exists COLUMN_NAME
修改字段,判断是否存在(这个用法有待商榷,毕竟如果没有这个字段,报错也是应该的):
alter table TABLE_NAME modify column if exists COLUMN_NAME
增加/修改视图,直接替换(如果有视图调用视图的,要注意顺序):
create or replace view VIEW_NAME as