PostgreSQLのCHARACTER VARYINGとVARCHARの違いは何ですか?


回答:


128

変化はvarcharのエイリアスなので、違いはありません。ドキュメントを参照してください:)

表記varchar(n)およびchar(n)は、それぞれ文字Variation(n)およびCharacter(n)のエイリアスです。長さ指定子のない文字は、character(1)と同等です。文字指定が長さ指定子なしで使用される場合、型は任意のサイズの文字列を受け入れます。後者はPostgreSQLの拡張機能です。


9
それは逆です:varcharはvaryの別名です。面倒ではありませんが、それはあなたの見積もりの​​中にあります。
zerzevul

2
@zerzevul varchar(n)などはANSI標準であり、この構文はPostgreSQLに固有であることを考えると、ドキュメントに同意せず、ここでCharlesに同意する場合があります。
BobRodes


4

唯一の違いは、VARCHARよりもCHARACTER VARYINGのほうが人間に優しいことです。


1
@joop私はCOBOLに触れる特権を持っていませんでしたが、英語に触れたことがあり、「VARCH ARe what?」と思います。:-)
2014年

8
それに加えて、トッププログラマーを混乱させると思います;)彼らはvarcharに慣れています
manocha_ak

3

どちらも同じものですが、多くのデータベースは、主にpostgreSQLが提供する可変文字を提供していません。したがって、Oracle PostgreやDB2などのマルチデータベースの場合は、Varcharを使用することをお勧めします。


2

短い答え:違いはありません。

長い答え:CHARACTER VARYINGANSI SQL標準の公式の型名であり、準拠するすべてのデータベースがサポートする必要があります。VARCHAR最近のすべてのデータベースでもサポートされている短いエイリアスです。私は好むVARCHARそれが短いと長い名前は知識をひけらかす感じているためだからです。ただし、pg_dumpおよびのようなpostgresツール\dはを出力しますcharacter varying

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.