2010-05-05 57 views
-1

有誰知道如何將SQLite和PostgreSQL中的列更改爲LONGTEXT?SQLite和PostgreSql longtext

我已經在MySQL中成功完成了: 「ALTER TABLE projects MODIFY description LONGTEXT;」

但是這個條款似乎不適用於SQLite。我努力尋找關於PostgreSQL的文檔,但該網站的格式真的讓人嘔吐。 SQLite的網站更好,但我發現唯一相關的命令alter table似乎並不支持更改列數據類型。 (事實上​​,它甚至不允許更改列名!!!)

謝謝大家!

回答

1

對於PostgreSQL,看不到該文檔here(例如,ALTER TABLE my_table ALTER COLUMN my_col text)。

SQLite文檔狀態

SQLite支持ALTER TABLE的有限子集。 SQLite中的ALTER TABLE命令允許用戶重命名錶或將新列添加到現有表中。無法重命名列,刪除列或添加或刪除表中的約束。

而且我想改變列的數據類型超出了範圍。可能支持這一點,你將需要DROP TABLE ...SELECT * INTO ...其次,然後創建表和運行INSERT INTO ... SELECT * FROM ...

+0

好的,我將採用您的方法,並感謝您的鏈接。 – 2010-05-05 02:37:08

1

AFAIK,PostgreSQL對blob沒有限制,所以不用擔心。

sqlite3的,很顯然,不關心在這種情況下,列類型(即TEXT相同LONGTEXT)

+0

我明白了。感謝提示 – 2010-05-05 02:31:24

+1

SQLite *支持ADD COLUMN。不過,您不能移除列。 – dan04 2010-05-05 06:55:20

+0

我認爲Sqlite支持這兩種方法//它比mssql好得多。 – Behrooz 2010-05-05 11:50:56

1

我不知道你有什麼問題Postresql documentation,這是相當不錯的IMO。

要更改列數據類型,here是語法。

Postgres支持使用TEXT datatype的任意長字符串(以及高達2 GB左右)。

+0

我必須說,在手冊中找到相關的東西,任何手冊,都與你對它的熟悉程度有很大關係。在我看來,像PrototypeJS,Rails,Ruby這樣的文檔,即使沒有什麼經驗,也可以很快找到他需要的東西。好吧,我首先去了postgresql的文檔站點,有一個明確的鏈接。我去了那裏,然後和8.4一起評論,然後也許我們不太熟悉DB中的術語,我本能地尋找像修改表格這樣的東西,但沒有發現任何東西。但將它與MySQL相比,確實好多了。 – 2010-05-05 02:36:46

+0

@Nik嗯......我個人討厭RDoc,但是發現PostgreSQL的格式非常簡單...不同的筆畫,我想。 – ig0774 2010-05-05 02:39:14

+0

用於討厭RDoc,然後它變得更容易一些,經過幾次區域內編碼會議後,它變得好多了。 我的偏見,現在我很遺憾地表達他們如此不小心,來自閱讀MySQL的文檔。思考數據庫'現在我正在查看你和Leonbloy提到的頁面,我必須說它看起來很棒。 我認爲這是我不知道「數據定義」是你可以挖掘我問到的東西。 – 2010-05-05 03:50:56

2

在SQLite中聲明LONGTEXT列毫無意義。所有類型名稱均與TEXTCHARCLOB相同。