มีวิธีง่ายๆในการดูรหัสที่ใช้ในการสร้างมุมมองโดยใช้ไคลเอนต์บรรทัดคำสั่ง PostgreSQL หรือไม่
สิ่งที่ชอบSHOW CREATE VIEW
จาก MySQL
มีวิธีง่ายๆในการดูรหัสที่ใช้ในการสร้างมุมมองโดยใช้ไคลเอนต์บรรทัดคำสั่ง PostgreSQL หรือไม่
สิ่งที่ชอบSHOW CREATE VIEW
จาก MySQL
คำตอบ:
ต้องกลับมาที่นี่เพื่อค้นหาpg_get_viewdef
(จะจำได้อย่างไร !!) ดังนั้นค้นหาคำสั่งที่น่าจดจำมากขึ้น ... และได้รับ:
\d+ viewname
คุณสามารถดูคำสั่งที่คล้ายกันได้โดยพิมพ์\?
ที่บรรทัดคำสั่ง pgsql
เคล็ดลับโบนัส: คำสั่ง emacs sql-postgres
ทำให้ pgsql เป็นที่พอใจมากขึ้น (แก้ไขคัดลอกวางประวัติคำสั่ง)
\dv
แสดงรายการทั้งหมด
select pg_get_viewdef('viewname', true)
รายการฟังก์ชั่นเหล่านั้นมีอยู่ในคู่มือ:
http://www.postgresql.org/docs/current/static/functions-info.html
select pg_get_viewdef('viewname'::regclass, true)
SELECT pg_get_viewdef(to_regclass('viewname'))
(ต้องมีอย่างน้อย v9.4)
select definition from pg_views where viewname = 'my_view'
select definition from pg_views where schemaname = 'my_schema' and viewname = 'my_view'
หากคุณต้องการเวอร์ชั่น ANSI SQL-92:
select view_definition from information_schema.views where table_name = 'view_name';
GoodNews ตั้งแต่ v.9.6 ขึ้นไปการแก้ไขมุมมองได้รับมาจาก psql เพียงแค่เรียกใช้\ev
คำสั่ง คำจำกัดความการดูจะแสดงในเครื่องมือแก้ไขที่กำหนดค่าของคุณ
julian@assange=# \ev {your_view_names}
โบนัส. บางคำสั่งที่เป็นประโยชน์ในการโต้ตอบกับแบบสอบถามบัฟเฟอร์
Query Buffer
\e [FILE] [LINE] edit the query buffer (or file) with external editor
\ef [FUNCNAME [LINE]] edit function definition with external editor
\ev [VIEWNAME [LINE]] edit view definition with external editor
\p show the contents of the query buffer
\r reset (clear) the query buffer
\s [FILE] display history or save it to file
\w FILE write query buffer to file
นี่เป็นสิ่งเล็กน้อยที่จะชี้ให้เห็น
การใช้ฟังก์ชั่น pg_get_viewdef หรือ pg_views หรือ information_schema.views คุณจะได้รับเวอร์ชันที่แก้ไขใหม่ของ DDL ดั้งเดิมของคุณเสมอ
เวอร์ชัน rewited อาจเป็นหรือไม่เหมือนกับสคริปต์ DDL ดั้งเดิมของคุณ
หาก Rule Manager เขียนคำจำกัดความมุมมองใหม่ DLL ต้นฉบับของคุณจะหายไปและคุณจะสามารถอ่านคำจำกัดความมุมมองรุ่นที่เขียนใหม่เท่านั้น
ไม่ใช่มุมมองทั้งหมดจะถูกเขียนใหม่ แต่ถ้าคุณใช้ตัวเลือกย่อยหรือเข้าร่วมอาจเป็นมุมมองของคุณจะถูกเขียนใหม่