คำถามติดแท็ก postgresql

PostgreSQL ทุกรุ่น เพิ่มแท็กเฉพาะรุ่นเพิ่มเติมเช่น postgresql-11 หากบริบทนั้นสำคัญ

7
ฉันจะแสดงรายการฐานข้อมูลและตารางทั้งหมดโดยใช้ psql ได้อย่างไร
ฉันพยายามเรียนรู้การดูแลระบบ PostgreSQL และเริ่มเรียนรู้วิธีใช้psqlเครื่องมือบรรทัดคำสั่ง เมื่อฉันเข้าสู่ระบบด้วยpsql --username=postgresฉันจะแสดงรายการฐานข้อมูลและตารางทั้งหมดได้อย่างไร ฉันได้พยายาม\d, dและdS+แต่ไม่มีอะไรที่เป็น บริษัท จดทะเบียน ฉันได้สร้างฐานข้อมูลสองแห่งและตารางสองสามรายการด้วย pgAdmin III ดังนั้นฉันจึงรู้ว่าควรแสดงรายการอยู่

5
ฉันจะแสดงรายการคอลัมน์ทั้งหมดสำหรับตารางที่ระบุได้อย่างไร
ฉันกำลังมองหาข้อมูลที่แม่นยำในฐานข้อมูลซึ่งฉันไม่มีความรู้ มันเป็นผลิตภัณฑ์ของบุคคลที่สามพวกเขาตอบคำถามช้าและฉันรู้ว่าข้อมูลอยู่ในฐานข้อมูลนั้นดังนั้นฉันต้องการวิศวกรรมย้อนยุคเล็กน้อย ให้หนึ่งตารางมันเป็นไปได้ที่จะมีรายชื่อของคอลัมน์สำหรับตารางนี้หรือไม่? ตัวอย่างเช่นใน SqlServer เป็นไปได้ที่จะดัมพ์ตารางลงในCREATEคำสั่งที่ใช้ซ้ำได้ซึ่งแสดงรายการคอลัมน์ทั้งหมดที่ตารางประกอบด้วยข้อความ



3
วิธีแทรกค่าลงในตารางจากแบบสอบถามแบบใช้เลือกข้อมูลใน PostgreSQL ได้อย่างไร
ผมมีตารางและตารางitems (item_id serial, name varchar(10), item_group int)items_ver (id serial, item_id int, name varchar(10), item_group int) ตอนนี้ผมต้องการที่จะแทรกแถวเป็นจากitems_ver itemsมีไวยากรณ์ SQL สั้น ๆ ในการทำเช่นนี้หรือไม่? ฉันได้ลองกับ: INSERT INTO items_ver VALUES (SELECT * FROM items WHERE item_id = 2); แต่ฉันได้รับข้อผิดพลาดทางไวยากรณ์: ERROR: syntax error at or near "select" LINE 1: INSERT INTO items_ver VALUES (SELECT * …
198 postgresql  insert 

5
ให้สิทธิ์การเข้าถึงตารางทั้งหมดสำหรับผู้ใช้
ฉันใหม่สำหรับ Postgres และพยายามย้ายฐานข้อมูล MySQL ของเราไป ใน MySQL ฉันสามารถให้สิทธิ์SELECT, UPDATE, INSERTและDELETEสิทธิพิเศษในการใช้สิทธิพิเศษต่ำและเปิดใช้ทุนเหล่านั้นเพื่อนำไปใช้กับตารางทั้งหมดในฐานข้อมูลที่ระบุ ฉันต้องหายไปบางอย่างใน Postgres เพราะดูเหมือนว่าฉันต้องให้สิทธิ์เหล่านั้นสำหรับแต่ละตารางทีละครั้ง ด้วยฐานข้อมูลจำนวนมากและหลายร้อยตารางต่อฐานข้อมูลที่ดูเหมือนว่าเป็นงานที่น่ากลัวเพียงเพื่อออกจากพื้นดิน นอกจากนี้เมื่อฐานข้อมูลทำงานอยู่การเพิ่มตารางเกิดขึ้นบ่อยครั้งพอที่ฉันไม่ต้องการให้สิทธิ์ในแต่ละครั้งเว้นแต่จะจำเป็นจริงๆ สิ่งนี้สำเร็จได้ดีที่สุดอย่างไร

7
รายการสิทธิ์ของฐานข้อมูลโดยใช้ psql
ฉันอยู่ระหว่างการย้ายเซิร์ฟเวอร์ฐานข้อมูลและฉันไม่สามารถคิด (หลังจากค้นหาและค้นหาที่นี่) ฉันจะแสดงรายการสิทธิ์การใช้ฐานข้อมูล (หรือสิทธิ์ทั้งหมดบนเซิร์ฟเวอร์) บน PostgreSQL โดยใช้psqlเครื่องมือบรรทัดคำสั่งได้อย่างไร ฉันใช้ Ubuntu 11.04 และรุ่น PostgreSQL ของฉันคือ 8.2.x


13
ฉันจะค้นหาไดเรกทอรีข้อมูลของ PostgreSQL ได้อย่างไร
ฉันลืมวิธีที่ฉันเริ่ม PostgreSQL ครั้งล่าสุด (เป็นเดือนที่ผ่านมา) และฉันจำไม่ได้ว่าไดเรกทอรีข้อมูลตั้งอยู่ที่ใด postgresคำสั่งดูเหมือนว่าจะต้องสถานที่ตั้งของไดเรกทอรีข้อมูล ฉันใช้ MacOsX ถ้าช่วยได้ /usr/local/postgres ไม่มีอยู่ใน Mac ของฉัน จากการใช้คำตอบที่ให้ไว้ด้านล่างฉันพบว่ามันอยู่ที่นี่: /usr/local/var/postgres

11
SQL: SELECT คอลัมน์ทั้งหมดยกเว้นบางคอลัมน์
มีวิธีSELECTใดคอลัมน์ทั้งหมดในตารางยกเว้นคอลัมน์ที่เฉพาะเจาะจง มันจะสะดวกมากสำหรับการเลือกคอลัมน์ที่ไม่ใช่หยดหรือไม่ใช่รูปทรงเรขาคณิตทั้งหมดจากตาราง สิ่งที่ต้องการ: SELECT * -the_geom FROM segments; ฉันเคยได้ยินว่าฟังก์ชั่นนี้ถูกยกเว้นโดยเจตนาจากมาตรฐาน SQLเพราะการเปลี่ยนการเพิ่มคอลัมน์ลงในตารางจะเปลี่ยนผลการสืบค้น มันเป็นเรื่องจริงเหรอ? อาร์กิวเมนต์นั้นใช้ได้หรือไม่ มีวิธีแก้ปัญหาเฉพาะอย่างยิ่งใน PostgreSQL หรือไม่

4
บังคับให้ปล่อย db ขณะที่ผู้อื่นอาจเชื่อมต่อ
ฉันต้องการลบฐานข้อมูลออกจากคลัสเตอร์ PostgreSQL DB ฉันจะทำอย่างไรแม้ว่าจะมีการเชื่อมต่อที่ใช้งานอยู่? ฉันต้องการเรียงลำดับของ-forceธงที่จะลดการเชื่อมต่อทั้งหมดแล้ว DB ฉันจะใช้มันได้อย่างไร ฉันกำลังใช้งานdropdbอยู่ แต่เครื่องมืออื่นเป็นไปได้

4
การเพิ่มประสิทธิภาพการสืบค้นในช่วงเวลาที่ประทับ (สองคอลัมน์)
ฉันใช้ PostgreSQL 9.1 บน Ubuntu 12.04 ฉันต้องเลือกระเบียนภายในช่วงเวลาหนึ่ง: ตารางของฉันtime_limitsมีสองtimestampฟิลด์และหนึ่งintegerคุณสมบัติ มีคอลัมน์เพิ่มเติมในตารางจริงของฉันที่ไม่เกี่ยวข้องกับแบบสอบถามนี้ create table ( start_date_time timestamp, end_date_time timestamp, id_phi integer, primary key(start_date_time, end_date_time,id_phi); ตารางนี้มีเร็กคอร์ด 2M โดยประมาณ ข้อความค้นหาต่อไปนี้ใช้เวลามหาศาล select * from time_limits as t where t.id_phi=0 and t.start_date_time <= timestamp'2010-08-08 00:00:00' and t.end_date_time >= timestamp'2010-08-08 00:05:00'; ดังนั้นฉันจึงพยายามเพิ่มดัชนีอื่น - ค่าผกผันของ PK: create index idx_inversed …

8
การจับคู่รูปแบบด้วย LIKE, SIMILAR TO หรือนิพจน์ปกติใน PostgreSQL
ฉันต้องเขียนคำถามง่ายๆที่ฉันไปหาชื่อของคนที่เริ่มต้นด้วย B หรือ D: SELECT s.name FROM spelers s WHERE s.name LIKE 'B%' OR s.name LIKE 'D%' ORDER BY 1 ฉันสงสัยว่าถ้ามีวิธีที่จะเขียนสิ่งนี้เพื่อให้มีประสิทธิภาพมากขึ้น ดังนั้นฉันสามารถหลีกเลี่ยงorและ / หรือlike?

3
PostgreSQL ข้อ จำกัด หลายคอลัมน์ที่ไม่ซ้ำกันและค่าเป็นศูนย์
ฉันมีตารางดังนี้: create table my_table ( id int8 not null, id_A int8 not null, id_B int8 not null, id_C int8 null, constraint pk_my_table primary key (id), constraint u_constrainte unique (id_A, id_B, id_C) ); และฉันต้องการ(id_A, id_B, id_C)ชัดเจนในทุกสถานการณ์ ดังนั้นส่วนแทรกสองรายการต่อไปนี้ต้องส่งผลให้เกิดข้อผิดพลาด: INSERT INTO my_table VALUES (1, 1, 2, NULL); INSERT INTO my_table VALUES (2, 1, …

2
ฉันจะรับการประทับเวลา unix ปัจจุบันจาก PostgreSQL ได้อย่างไร
Unix timestampคือจำนวนวินาทีตั้งแต่เที่ยงคืน UTC 1 มกราคม 1970 ฉันจะรับการประทับเวลา unix ที่ถูกต้องจาก PostgreSQL ได้อย่างไร เมื่อเปรียบเทียบกับcurrenttimestamp.comและtimestamp.1e5b.deฉันไม่ได้รับเวลาที่คาดหวังจาก PostgreSQL: ส่งคืนการประทับเวลาที่ถูกต้อง: SELECT extract(epoch from now()); ในขณะนี้ไม่ได้: SELECT extract(epoch from now() at time zone 'utc'); ฉันอาศัยอยู่ในเขตเวลา UTC +02 วิธีที่ถูกต้องในการรับ timestamp ยูนิกซ์ปัจจุบันจาก PostgreSQL คืออะไร? สิ่งนี้จะคืนค่าเวลาและโซนเวลาที่ถูกต้อง: SELECT now(); now ------------------------------- 2011-05-18 10:34:10.820464+02 การเปรียบเทียบอื่น: select now(), extract(epoch from now()), extract(epoch from …

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