23
Para la siguiente declaración de MySQL crear la base de datos, lo que sería el equivalente en PostgreSQL ?:UTF8 Postgresql Crear base de datos como MySQL (incluyendo el conjunto de caracteres, la codificación y lc_type)
CREATE DATABASE IF NOT EXISTS `scratch`
DEFAULT CHARACTER SET = utf8
DEFAULT COLLATE = utf8_unicode_ci;
Actualmente tengo:
CREATE DATABASE "scratch"
WITH OWNER "postgres"
ENCODING 'UTF8'
TABLESPACE "pg_default";
¿Es eso suficiente o debería ser más específico, incluyendo LOCALE
también?
Gracias Michael. Esto fue más una confirmación ya que se me ocurrió lo mismo; sin embargo, nunca veo ejemplos como este _en cualquier lugar_ pero siempre prefiero ser 100% explícito. Eché un vistazo a los documentos antes de hacer esta pregunta; Sin embargo, aunque todavía se me ocurrió exactamente la sintaxis que me diste, todavía no me sentía seguro de que no me estaba perdiendo algo. Eso para mí tiende a aludir al hecho de que los documentos podrían ser un poco mejores al proporcionar ejemplos. –
Esto funcionó para mí, pero necesitaba agregar la siguiente restricción para que funcione: 'TEMPLATE = template0' – Lucas
Las intercalaciones de pg son extremadamente confusas. En mysql, utf8mb4_unicode_ci es el estándar: todos los idiomas en una colación. Esto no es un comportamiento definido por RFC o ISO, ¡pero funciona! El objetivo de unicode/utf8 es admitir todos los idiomas * a la perfección *. Especificar utf8 y luego forzarlo a ordenar de acuerdo con una colación única como en_US no solo es confuso, sino inútil. El requisito es mostrar inglés, chino, japonés y otros en la misma página en algún tipo de orden definido. No puedo simplemente asumir que cada cliente está trabajando con un solo idioma principal. ¿Cómo diablos apoyar multi-idioma? –