2009-08-19 44 views
1

我試圖更改爲VARCHAR列的數據類型,但收到以下錯誤無法更改列的數據類型Postgres裏

ERROR: syntax error at or near "type" at character 40 

我的代碼如下

alter table n_logs alter column action type varchar(100); 

我「M運行PostgreSQL的7.4.13(是的,我知道我需要升級)

回答

5

我不認爲你可以這樣做: http://www.postgresql.org/docs/7.4/interactive/ddl-alter.html

你應該把它分成3個步驟

  1. 添加新列從第一列到第2
  2. 降舊列
+3

我會添加4.將新列重新命名爲舊列 – 2011-05-25 22:31:31

+0

@ andersonbd1添加新列僅在表的結尾。我們不能把這個列放在原來的地方,就像mysql一樣嗎? – itsols 2012-11-01 03:35:46

+0

@itsols - 不確定...只是好奇 - 爲什麼順序對你很重要? – andersonbd1 2012-11-01 19:02:30

2

  • 副本值我知道你說你已經找到了解決辦法,但是如果您拿出「動作」關鍵字,則您的命令可能會奏效:

    ALTER TABLE table_name_here 
    ALTER COLUMN column_name_here type varchar(100); 
    

    上面的SQL爲我工作,謝謝。