SQL 文本數據類型已棄用?
我已經讀到 Microsoft SQL Server 已棄用
text
數據類型而支持varchar(max)
.PostGreSQL 已經允許
varchar
(沒有長度)作為text
.問題是,ANSI SQL 標準對 deprecating
text
和最佳替代方案有什麼看法?另外,MySQL/MariaDB 也遵循這個嗎?謝謝
在 ANSI SQL 標準中,沒有
TEXT
類型。定義了各種字元串類型,例如CHAR
andVARCHAR
等等,但沒有提及TEXT
類型。有一個CHARACTER LARGE OBJECT
和一個BINARY LARGE OBJECT
。在各種 DBMS(Postgres、SQL Server、MySQL)中發現的
TEXT
各種類型是附加的,它們之間有細微的差別。它們的相似之處在於它們可以容納非常大的字元串。SQL Server
TEXT
正在被棄用。MySQLTEXT
沒有被棄用。PostgreSQLTEXT
得到了很好的支持並被許多人推薦在任何地方使用,代替VARCHAR(n)
. 來自 Postgres 文件,字元類型:此外,PostgreSQL 還提供了 text 類型,可以儲存任意長度的字元串。儘管該類型
text
不在 SQL 標準中,但其他幾個 SQL 數據庫管理系統也有它。所以,問題:
問題是,ANSI SQL 標準對 deprecating
text
和最佳替代方案有什麼看法?另外,MySQL/MariaDB 也遵循這個嗎?很容易回答:Nothing 和 No。沒有棄用 of
TEXT
,因為沒有TEXT
類型。TEXT
甚至不是 ANSI SQL 中的保留關鍵字。對於不在標準中的類型,一個 DBMS (MySQL) 不必遵循另一個 DBMS (SQL Server) 的棄用決策。