การรับการเข้ารหัสของฐานข้อมูล Postgres


141

ฉันมีฐานข้อมูลและฉันจำเป็นต้องรู้การเข้ารหัสเริ่มต้นสำหรับฐานข้อมูล ฉันต้องการรับจากบรรทัดคำสั่ง

คำตอบ:


175

จากบรรทัดคำสั่ง:

psql my_database -c 'SHOW SERVER_ENCODING'

จากภายในpsqlSQL IDE หรือ API:

SHOW SERVER_ENCODING

นั่นไม่ใช่การตั้งค่าระดับเซิร์ฟเวอร์ (ค่าเริ่มต้นที่ใช้สำหรับฐานข้อมูลที่สร้างขึ้นใหม่) แทนที่จะเป็นการตั้งค่าฐานข้อมูล / ระดับแคตตาล็อกที่ถามในคำถามหรือไม่
Basil Bourque

4
โปรดทราบว่าจากภายใน psql จะต้องมีเครื่องหมายอัฒภาคในตอนท้าย ie SHOW SERVER_ENCODING;
Jon Bernhardt

49

วิธีที่ 1:

หากคุณลงชื่อเข้าใช้เซิร์ฟเวอร์ db อยู่แล้วให้คัดลอกและวางสิ่งนี้

SHOW SERVER_ENCODING;

ผลลัพธ์:

  server_encoding 
-----------------  
UTF8

สำหรับการเข้ารหัสลูกค้า:

 SHOW CLIENT_ENCODING;

วิธีที่ 2:

อีกครั้งถ้าคุณเข้าสู่ระบบแล้วใช้สิ่งนี้เพื่อรับผลตามรายการ

\l 


32

หากคุณต้องการรับการเข้ารหัสฐานข้อมูล:

psql  -U postgres -h somehost --list

คุณจะเห็นสิ่งที่ชอบ:

List of databases
           Name         |  Owner   | Encoding
------------------------+----------+----------
db1                     | postgres | UTF8

12

เนื่องจากมีมากกว่าหนึ่งวิธีในการดูแลแมว:

psql -l

แสดงชื่อฐานข้อมูลการเข้ารหัสและอื่น ๆ ทั้งหมด


5

TL; DR

SELECT character_set_name 
FROM information_schema.character_sets 
;

วิธีมาตรฐาน: information_schema

จากSQL มาตรฐานคีมา information_schemaอยู่ในทุกฐานข้อมูล / character_setsแคตตาล็อกใช้มุมมองที่กำหนดชื่อ วิธีการนี้ควรจะพกพาทั่วทุกระบบฐานข้อมูลมาตรฐาน

SELECT * 
FROM information_schema.character_sets 
;

แม้จะมีชื่อเป็นพหูพจน์ก็จะแสดงเพียงแถวเดียวรายงานในฐานข้อมูล / แคตตาล็อกปัจจุบัน

สกรีนช็อตของ pgAdmin 4 พร้อมผลลัพธ์การสืบค้นที่แสดงด้านบน

คอลัมน์ที่สามคือcharacter_set_name:

ชื่อของชุดอักขระปัจจุบันมีการใช้งานเพื่อแสดงชื่อของการเข้ารหัสฐานข้อมูล

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.