В чем разница между CHARACTER VARYING и VARCHAR в PostgreSQL?

115

Джон использует CHARACTER VARYINGтам, где я использую VARCHAR. Я новичок, а он специалист. Это наводит на мысль, что я чего-то не знаю.

В чем разница между CHARACTER VARYING и VARCHAR в PostgreSQL?

Лео Леопольд Герц 준영
источник

Ответы:

129

Varying - это псевдоним для varchar, поэтому без разницы, см. Документацию :)

Обозначения varchar (n) и char (n) - это псевдонимы для символа изменяющийся (n) и символа (n), соответственно. символ без спецификатора длины эквивалентен символу (1). Если изменение символа используется без спецификатора длины, тип принимает строки любого размера. Последний является расширением PostgreSQL.

Чарльз Ма
источник
9
Наоборот: varchar - это псевдоним для изменения. Не буду педантичным, но это прямо в вашей цитате.
zerzevul 06
2
@zerzevul Здесь можно не согласиться с документацией и согласиться с Чарльзом, учитывая, что varchar(n)и т. д. являются стандартами ANSI, и этот синтаксис специфичен для PostgreSQL.
BobRodes,
4

Единственная разница в том, что CHARACTER VARYING более дружелюбен к человеку, чем VARCHAR.

инор
источник
1
@joop У меня не было возможности познакомиться с COBOL, но я познакомился с английским языком, и я думаю: "VARCH ARe what?" :-)
INOR
8
Кроме того, я думаю, что это сбивает с толку топ-программистов;) Они привыкли к varchar
manocha_ak
3

И то, и другое - одно и то же, но многие базы данных не предоставляют различные символы, которые в основном предоставляет postgreSQL. Итак, для многопользовательской базы данных, такой как Oracle Postgre и DB2, хорошо использовать Varchar

Дайя Шанкер
источник
2

Короткий ответ: разницы нет.

Длинный ответ: CHARACTER VARYINGэто официальное имя типа из стандарта ANSI SQL, которое должны поддерживать все совместимые базы данных. VARCHARэто более короткий псевдоним, который также поддерживают все современные базы данных. Я предпочитаю, VARCHARпотому что оно короче, а более длинное имя кажется педантичным. Однако такие инструменты postgres, как pg_dumpи, \dбудут выводить character varying.

Гордон Хоппер
источник