UTF8 Postgresql создает базу данных, как MySQL (включая набор символов, кодировку и lc_type) - PullRequest
24 голосов
/ 01 апреля 2012

Для следующего оператора создания базы данных MySQL, что будет эквивалентом в postgresql?

CREATE DATABASE IF NOT EXISTS `scratch` 
  DEFAULT CHARACTER SET = utf8
  DEFAULT COLLATE = utf8_unicode_ci;

В настоящее время у меня есть:

CREATE DATABASE "scratch"
  WITH OWNER "postgres"
  ENCODING 'UTF8'
  TABLESPACE "pg_default";

Достаточно ли этого, или я должен быть более конкретным, включая LOCALE?

1 Ответ

41 голосов
/ 01 апреля 2012

Да, вы можете быть более конкретным.

Например:

CREATE DATABASE "scratch"
  WITH OWNER "postgres"
  ENCODING 'UTF8'
  LC_COLLATE = 'en_US.UTF-8'
  LC_CTYPE = 'en_US.UTF-8';

Также я рекомендую прочитать следующие страницы о локалях и сопоставлениях в PostgreSQL:

...