我有一个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";
非常感谢任何帮助。
答案 0 :(得分:3)
H2目前不支持重新排序列。您需要运行多个语句:
首先,重命名该列,然后在正确的位置添加一个正确名称的新列(alter table add
支持定位),最后删除旧列。
或者,可能更优雅,使用rename table
然后create table ... as select
。