2
我有一個H2數據庫,其中有1600萬個條目並且沒有主鍵。我成功添加使用下面的語句自動遞增的主鍵:H2數據庫 - 使用SQL對列重新排序
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";
任何幫助,慷慨讚賞。
有沒有標準的方法來做到這一點,在某些產品中,您唯一的選擇是創建一個新表並將數據複製。它不符合標準,因爲儘可能不要依賴具有*任何特定順序的列。不能說h2是否有任何幫助你的設施。 –
事實上,這只是執行'SELECT * FROM'查詢時的一個美學問題(在任何情況下我都不依賴列順序)。感謝關於複製表格的提示。 – Matt
也許你可以運行多個'alter table'語句?首先,重命名該列,然後在正確的位置添加一個正確名稱的新列(「alter table add」支持定位),最後刪除舊列。或者使用'rename table'然後'create table ... as select'。 –