2011-04-06 85 views
3

我想要更改列的順序,例如名稱是我的表的第一列,並且表中還有10個其他列我想在名稱列之後的第二個位置插入一個新列。 這怎麼可能?更改數據庫列的順序

+4

如果不重建表格,這是不可能的。 – 2011-04-06 11:41:28

回答

7

1 - 正如Martin正確指出的那樣,如果不重建表格,這是不可能的。

2 - 無論如何,指定你想要的字段和按照n8wrl指出的SELECT語句的順序是一種很好的做法。

3 - 如果您真的需要需要在您的字段上固定的順序,可以創建一個視圖,以您想要的順序選擇所需的字段。

5

與表格中的行一樣,列的順序沒有任何意義。實際上,最好在你的select語句中指定你想要列的順序,而不是使用select *,這樣你就可以在需要的地方'插入'新列,只需相應地編寫你的SELECT語句即可。

+0

+1這個答案應該可能解釋說這是不可能的,但不是告訴OP他們不應該想要這樣做! – 2011-04-06 11:42:52

1

它可能改變順序。在某些情況下,它確實很重要。有個人經驗。 無論如何..這個查詢工作正常。
ALTER TABLE user MODIFY Name VARCHAR(150) AFTER address;

0

您可以通過以下步驟實現:

  1. 刪除所有外鍵和原表的主鍵。
  2. 重命名原始表格。
  3. 使用CTAS,以您想要的順序創建原始表格。
  4. 放棄舊錶。
  5. 將所有約束應用回原始表。