H2数据库 - 使用SQL重新排序列

时间:2014-04-02 13:18:09

标签: sql h2

我有一个H2数据库,有1600万个条目,没有主键。我使用以下语句成功添加了一个自动递增的主键:

ALTER TABLE
    PUBLIC.ADDRESSES ADD ID BIGINT AUTO_INCREMENT;
ALTER TABLE
    PUBLIC.ADDRESSES ADD PRIMARY KEY (ID)

现在的问题是,列顺序为STREET, HOUSENUMBER, ..., ID,但我希望ID成为表格的第一列。看起来有一个相应的ALTER TABLE语句MySQL(see here),但我无法将其调整为H2。

长话短说:如何将列顺序更改为ID, STREET, HOUSENUMBER ...?有没有类似的解决方案:

ALTER TABLE "ADDRESSES" MODIFY COLUMN "ID" BEFORE "STREET";

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:3)

H2目前不支持重新排序列。您需要运行多个语句:

  • 首先,重命名该列,然后在正确的位置添加一个正确名称的新列(alter table add支持定位),最后删除旧列。

  • 或者,可能更优雅,使用rename table然后create table ... as select