作爲一個誰來到這裏的同一個問題,我不知道該怎麼做這些答案。我嘗試了所有這些,並且總是在一個術語或另一個術語中出現語法錯誤。回到官方docs之後,我意識到缺少的是一個額外的關鍵字,例如SET或TYPE。例子:
首先這個
zuri=# ALTER TABLE newarts ALTER COLUMN sunsetdate DATE NULL; ERROR: syntax error at or near "DATE" LINE 2: ALTER COLUMN sunsetdate DATE NULL;
那麼這樣的:
zuri=# ALTER TABLE newarts ALTER COLUMN sunsetdate TYPE DATE NULL; ERROR: syntax error at or near "NULL" LINE 2: ALTER COLUMN sunsetdate TYPE DATE NULL;
是的,還有一個錯誤出現,但一旦我指定日期的含義與關鍵字類型的錯誤已解決,我轉移到另一個。我在添加SET方面也有同樣的經歷(請參閱我已經引用的官方文檔的同一頁上的示例)。
至於NOT NULL的具體問題,(尤其是因爲它涉及到我的日期問題)我讀這answer和它似乎工作 - 我沒有得到一個錯誤信息 -
zuri=# update lili_code set sunsetdate=NULL; UPDATE 0
但後來我讀
成功完成後,UPDATE命令返回的形式
UPDATE count
的命令標籤
計數是更新的行數。如果count爲0,則沒有行 匹配條件(這不被視爲錯誤)。
這也在官方文檔中,here。
最後,我轉向PGAdminIII,在那裏我發現NOT NULL是一個簡單的複選框。取消它,問題解決了。我確信有一種方法可以在psql的命令行下完成這項工作,但我還沒有找到它。
我認爲一些變化也可能是由於ALTER和UPDATE之間的差異(參見此SO answer和我的厚顏無恥的評論)以及添加新結構(如OP的問題)和修改數據已經在那裏(如我的)。 故事的寓意,請閱讀官方文檔。不要掃描它。閱讀。如果你想知道更多關於NULL和NOT NULL的內容,請閱讀this。
錯誤消息中有一個括號,並且您發佈的語法沒有。你確定兩人同步?你使用的是什麼RDBMS?我敢肯定,你需要以某種方式分隔包含空格的列名(可能用引號括起來) – 2010-08-10 11:23:05
使用postgresql – lakshmi 2010-08-10 11:25:05