2012-04-01 31 views
23

Đối với những điều sau MySQL tạo tuyên bố cơ sở dữ liệu, những gì sẽ là tương đương trong postgresql ?:UTF8 PostgreSQL Create Database Giống như MySQL (bao gồm cả bộ ký tự, mã hóa, và lc_type)

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

Tôi hiện có:

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

Điều đó có đủ hay tôi nên cụ thể hơn bao gồm cả LOCALE không?

Trả lời

38

Có, bạn có thể cụ thể hơn.

Ví dụ:

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

Ngoài ra tôi khuyên bạn nên đọc các trang sau đây về miền địa phương và collations trong PostgreSQL:

+0

Cảm ơn Michael. Điều này đã được xác nhận nhiều hơn khi tôi đến với cùng một; tuy nhiên, tôi không bao giờ thấy các ví dụ như thế này _anywhere_ nhưng tôi luôn thích được rõ ràng 100%. Tôi đã có một cái nhìn tại các tài liệu trước khi đặt câu hỏi này; tuy nhiên, trong khi tôi vẫn đưa ra chính xác cú pháp bạn đưa cho tôi, tôi vẫn không cảm thấy tự tin rằng tôi đã không bỏ lỡ điều gì đó. Điều đó đối với tôi có xu hướng ám chỉ đến thực tế rằng các tài liệu có thể tốt hơn một chút khi cung cấp các ví dụ. –

+1

Điều này làm việc cho tôi nhưng tôi cần phải thêm ràng buộc sau đây để làm cho nó hoạt động: 'TEMPLATE = template0' – Lucas

+2

collations của pg là vô cùng khó hiểu. Trên mysql, utf8mb4_unicode_ci là tiêu chuẩn - tất cả các ngôn ngữ trong một đối chiếu. Đây không phải là hành vi được xác định theo RFC hoặc ISO, nhưng nó hoạt động! Toàn bộ điểm unicode/utf8 là hỗ trợ tất cả các ngôn ngữ * liền mạch *. Để chỉ định utf8, và sau đó bị buộc phải sắp xếp theo một collation đơn như en_US không chỉ gây nhầm lẫn, mà còn vô ích. Yêu cầu là hiển thị tiếng Anh, tiếng Trung, tiếng Nhật và cộng đồng trên cùng một trang theo một thứ tự xác định nào đó! Tôi không thể cho rằng mọi khách hàng đều làm việc với một ngôn ngữ chính. Làm thế nào để hỗ trợ đa ngôn ngữ? –

Các vấn đề liên quan