Джон использует CHARACTER VARYING
там, где я использую VARCHAR
. Я новичок, а он специалист. Это наводит на мысль, что я чего-то не знаю.
В чем разница между CHARACTER VARYING и VARCHAR в PostgreSQL?
Джон использует CHARACTER VARYING
там, где я использую VARCHAR
. Я новичок, а он специалист. Это наводит на мысль, что я чего-то не знаю.
В чем разница между CHARACTER VARYING и VARCHAR в PostgreSQL?
Ответы:
Varying - это псевдоним для varchar, поэтому без разницы, см. Документацию :)
Обозначения varchar (n) и char (n) - это псевдонимы для символа изменяющийся (n) и символа (n), соответственно. символ без спецификатора длины эквивалентен символу (1). Если изменение символа используется без спецификатора длины, тип принимает строки любого размера. Последний является расширением PostgreSQL.
varchar(n)
и т. д. являются стандартами ANSI, и этот синтаксис специфичен для PostgreSQL.
Документация PostgreSQL по символьным типам - хорошая ссылка на это. Это два разных названия одного и того же типа.
Единственная разница в том, что CHARACTER VARYING более дружелюбен к человеку, чем VARCHAR.
И то, и другое - одно и то же, но многие базы данных не предоставляют различные символы, которые в основном предоставляет postgreSQL. Итак, для многопользовательской базы данных, такой как Oracle Postgre и DB2, хорошо использовать Varchar
Короткий ответ: разницы нет.
Длинный ответ: CHARACTER VARYING
это официальное имя типа из стандарта ANSI SQL, которое должны поддерживать все совместимые базы данных. VARCHAR
это более короткий псевдоним, который также поддерживают все современные базы данных. Я предпочитаю, VARCHAR
потому что оно короче, а более длинное имя кажется педантичным. Однако такие инструменты postgres, как pg_dump
и, \d
будут выводить character varying
.