2015-10-06 68 views
0

我想在數據庫的表中添加一列,使列始終保持爲 作爲最後一列,即使稍後添加新列也是如此。 例如:添加具有默認索引的數據庫表列作爲最後一個

姓名,身份證,住址

我需要添加時間戳列將由alter命令來完成,它會在最後索引處添加列。所以添加時間戳列後

姓名,身份證,地址,時間戳

現在,在未來的猜想,如果一個新的需求來添加新列PHONE_NUMBER 的alter命令將被運行,這將時間戳列之後添加PHONE_NUMBER

姓名,身份證,地址,時間戳,PHONE_NUMBER

如果我們想時間戳,我們可以使用後條款,可以地址後加上PHONE_NUMBER前加PHONE_NUMBER,因此,它將成爲

名稱,標識,地址,電話號碼,時間戳

但假設有些用戶忘記使用AFTER子句,它將在時間戳後放置phone_number,因此將打破時間戳必須作爲最後一列的邏輯。

那麼有什麼辦法保持時間戳列在最後?

+2

你在哪裏找到Postgres中的'AFTER'子句?,_如果我們想在時間戳之前添加phone_number,我們可以使用AFTER子句_,你說的是什麼??你必須徹底閱讀[ALTER TABLE](http:// www。 postgresql.org/docs/9.4/static/sql-altertable.html) –

+0

您無法在Postgres中的特定位置添加新列。總是在最後添加一個新的列**。所以你的問題的答案是:「否」 –

+0

[鏈接](https://dev.mysql.com/doc/refman/5.1/en/alter-table.html)在alter命令中查找after子句。 –

回答

1

PostgreSQL不支持這個功能,至少在9.5及更高版本中是如此。您不能設置列的順序。

你不是真的要小心 - 列的含義被引用的名稱,而不是順序位置。這是純粹的方法,有時候使用序數位置會很好。你仍然可以,除了刪除和重新創建表格之外,你無法改變這些職位。

您只需更改您的應用程序邏輯,以便按列名獲取時間戳。

相關問題