我正在使用Flyway迁移PostgreSQL表以用于Spring Web应用程序,因此,我编写了一组SQL查询,这些查询将列添加到现有表中,例如:
ALTER TABLE table_1 ADD COLUMN table_value_x TYPE INTEGER;
ALTER TABLE table_1 ADD COLUMN table_value_y TYPE VARCHAR(100);
在Tomcat上部署war文件后,出现以下错误:
错误:语法错误在或接近" INTEGER"
由于Postgre对其错误没有那么多的信息,我正在寻找关于这可能是什么的任何建议或建议,谢谢。
答案 0 :(得分:5)
According to the docs,我相信您需要省略TYPE
ALTER TABLE table_1 ADD COLUMN table_value_x INTEGER;
ALTER TABLE table_1 ADD COLUMN table_value_y VARCHAR(100);
在文档中, TYPE 关键字仅在您更改现有列的数据类型时使用。
ALTER [ COLUMN ] column [ SET DATA ] TYPE data_type [ COLLATE collation ] [ USING expression ]
答案 1 :(得分:2)
TYPE
关键字仅在更改(更改)列数据类型时使用。要添加列,请忽略TYPE
关键字,如Matt所写,并且在文档示例中显示(在页面末尾):https://www.postgresql.org/docs/9.4/static/sql-altertable.html
答案 2 :(得分:2)
我怀疑如果你摆脱“TYPE”这个词可能会有用。
请参阅下面的示例,来自Postgres网站。
ALTER TABLE distributors ADD COLUMN address varchar(30);
编辑:我看到很多人都打败了我。