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

PostgreSQL เป็นระบบจัดการฐานข้อมูลเชิงวัตถุแบบโอเพ่นซอร์ส (ORDBMS) ที่พร้อมใช้งานสำหรับแพลตฟอร์มหลักทั้งหมดรวมถึง Linux, UNIX, Windows และ OS X โปรดพูดถึง Postgres รุ่นที่แน่นอนของคุณเมื่อถามคำถาม คำถามเกี่ยวกับการดูแลระบบหรือคุณสมบัติขั้นสูงจะส่งตรงไปที่ dba.stackexchange.com

11
คุณจะสร้างผู้ใช้แบบอ่านอย่างเดียวใน PostgreSQL ได้อย่างไร
ฉันต้องการสร้างผู้ใช้ใน PostgreSQL ที่สามารถเลือกได้จากฐานข้อมูลเฉพาะเท่านั้น ใน MySQL คำสั่งจะเป็น: GRANT SELECT ON mydb.* TO 'xxx'@'%' IDENTIFIED BY 'yyy'; คำสั่งหรือชุดคำสั่งที่เทียบเท่าใน PostgreSQL คืออะไร ฉันเหนื่อย... postgres=# CREATE ROLE xxx LOGIN PASSWORD 'yyy'; postgres=# GRANT SELECT ON DATABASE mydb TO xxx; แต่ปรากฏว่าสิ่งเดียวที่คุณสามารถให้สิทธิ์ในฐานข้อมูลคือ CREATE, CONNECT, TEMPORARY และ TEMP
419 postgresql 

12
วิธีการส่งออกตารางเป็น CSV โดยมีหัวเรื่องใน Postgresql
ฉันกำลังพยายามส่งออกตาราง PostgreSQL ด้วยส่วนหัวไปยังไฟล์ CSV ผ่านทางบรรทัดคำสั่ง แต่ฉันจะส่งออกไปยังไฟล์ CSV แต่ไม่มีส่วนหัว รหัสของฉันมีลักษณะดังนี้: COPY products_273 to '/tmp/products_199.csv' delimiters',';

30
Postgres ไม่สามารถเชื่อมต่อกับเซิร์ฟเวอร์
หลังจากที่ฉันทำการปรับปรุงการชงและการปรับรุ่นผู้โพสต์ของฉันก็มีปัญหา ฉันพยายามถอนการติดตั้ง postgres และติดตั้งอีกครั้ง แต่ก็ใช้งานไม่ได้เช่นกัน นี่เป็นข้อความแสดงข้อผิดพลาด (ฉันยังได้รับข้อความแสดงข้อผิดพลาดนี้เมื่อฉันพยายาม rake db: migrate ด้วย) $ psql psql: could not connect to server: No such file or directory Is the server running locally and accepting connections on Unix domain socket "/tmp/.s.PGSQL.5432"? ฉันจะแก้มันได้อย่างไร เวอร์ชั่น Mac: Lion Mountain รุ่น homebrew: 0.9.3 รุ่น postgres: psql (PostgreSQL) 9.2.1 …

5
ฉันจะเลือก DISTINCT ในหลายคอลัมน์ได้อย่างไร (หรือฉันสามารถ)
ฉันต้องการดึงแถวทั้งหมดจากตารางที่มี 2 คอลัมน์รวมกันแตกต่างกันทั้งหมด ดังนั้นฉันต้องการยอดขายทั้งหมดที่ไม่มียอดขายอื่น ๆ ที่เกิดขึ้นในวันเดียวกันในราคาเดียวกัน ยอดขายที่ไม่ซ้ำกันตามวันและราคาจะได้รับการอัปเดตเป็นสถานะที่ใช้งานอยู่ ดังนั้นฉันคิดว่า: UPDATE sales SET status = 'ACTIVE' WHERE id IN (SELECT DISTINCT (saleprice, saledate), id, count(id) FROM sales HAVING count = 1) แต่สมองของฉันเจ็บไปไกลกว่านั้น


23
ไฟล์ postgres * .conf ของฉันอยู่ที่ไหน
ฉันเพิ่งติดตั้ง postgresql 8.3 ใหม่บน Ubuntu 8.04 หลังจากอัปเดต แพ็คเกจ EnterpriseDB ที่ใช้แล้ว ฉันสามารถเชื่อมต่อกับฐานข้อมูลในเครื่องฉันเห็นระบบฐานข้อมูล postgres แต่ฉันไม่สามารถกำหนดค่าได้เพราะฉันไม่พบไฟล์กำหนดค่า ค้นหาผ่านฮาร์ดไดรฟ์ทั้งหมดและพบเฉพาะตัวอย่างเช่นpg_hba.conf.sample ไฟล์postgres * .conf อยู่ที่ไหน

16
psql: FATAL: ไม่มีบทบาท“ postgres”
ฉันเป็นมือใหม่ ฉันติดตั้ง postgres.app สำหรับ mac ฉันกำลังเล่นกับคำสั่ง psql และฉันทิ้งฐานข้อมูล postgres โดยไม่ตั้งใจ ฉันไม่รู้ว่ามีอะไรอยู่ในนั้น ฉันกำลังทำงานเกี่ยวกับการสอน: http://www.rosslaird.com/blog/building-a-project-with-mezzanine/ และฉันติดอยู่ที่ sudo -u postgres psql postgres ข้อความผิดพลาด: psql: FATAL: role "postgres" does not exist $ ที่ psql /Applications/Postgres.app/Contents/MacOS/bin/psql นี่คือสิ่งที่พิมพ์ออกมา psql -l List of databases Name | Owner | Encoding | Collate | Ctype | Access privileges ------------+------------+----------+---------+-------+--------------------------- …

30
วิธีการเลือกแถวที่ n ในตารางฐานข้อมูล SQL
ฉันสนใจที่จะเรียนรู้วิธีฐานข้อมูลแบบไม่เชื่อเรื่องพระเจ้าในการเลือกแถวที่nจากตารางฐานข้อมูล นอกจากนี้ยังเป็นที่น่าสนใจที่จะเห็นว่าสิ่งนี้สามารถทำได้โดยใช้ฟังก์ชั่นพื้นเมืองของฐานข้อมูลต่อไปนี้: เซิร์ฟเวอร์ SQL MySQL PostgreSQL SQLite คำพยากรณ์ ฉันกำลังทำสิ่งต่อไปนี้ใน SQL Server 2005 แต่ฉันสนใจที่จะเห็นแนวทางที่ไม่เชื่อเรื่องพระเจ้าของผู้อื่นมากขึ้น: WITH Ordered AS ( SELECT ROW_NUMBER() OVER (ORDER BY OrderID) AS RowNumber, OrderID, OrderDate FROM Orders) SELECT * FROM Ordered WHERE RowNumber = 1000000 เครดิตสำหรับ SQL ข้างต้น: บล็อกของ Firoz Ansari อัปเดต:ดูคำตอบของ Troels Arvinเกี่ยวกับมาตรฐาน SQL Troels คุณมีลิงค์ที่เราสามารถอ้างอิงได้ไหม?

13
คุณจะพบการนับแถวสำหรับตารางทั้งหมดของคุณใน Postgres ได้อย่างไร
ฉันกำลังมองหาวิธีที่จะหาจำนวนแถวสำหรับตารางทั้งหมดของฉันใน Postgres ฉันรู้ว่าฉันสามารถทำสิ่งนี้ทีละตารางด้วย: SELECT count(*) FROM table_name; แต่ฉันต้องการเห็นจำนวนแถวสำหรับตารางทั้งหมดแล้วเรียงลำดับตามเพื่อให้ทราบว่าตารางทั้งหมดของฉันมีขนาดใหญ่เพียงใด

10
จะบันทึกการสืบค้น PostgreSQL ได้อย่างไร?
จะเปิดใช้งานการบันทึกของ SQL ทั้งหมดที่ดำเนินการโดย PostgreSQL 8.3 ได้อย่างไร แก้ไข (ข้อมูลเพิ่มเติม) ฉันเปลี่ยนบรรทัดเหล่านี้: log_directory = 'pg_log' log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log' log_statement = 'all' และเริ่มบริการ PostgreSQL อีกครั้ง แต่ไม่มีการสร้างบันทึก ... ฉันใช้ Windows Server 2003 ความคิดใด ๆ

23
psql: FATAL: การพิสูจน์ตัวตนล้มเหลวสำหรับผู้ใช้“ postgres”
ฉันได้ติดตั้ง PostgreSQL และ pgAdminIII บนกล่อง Ubuntu Karmic ของฉันแล้ว ฉันสามารถใช้ pgAdminIII ได้สำเร็จ (เช่นเชื่อมต่อ / ล็อกออน) อย่างไรก็ตามเมื่อฉันพยายามลงชื่อเข้าใช้เซิร์ฟเวอร์โดยใช้ชื่อผู้ใช้ / pwd เดียวกันบนบรรทัดคำสั่ง (โดยใช้ psql) ฉันได้รับข้อผิดพลาด: psql: FATAL: Ident authentication failed for user "postgres" มีใครบ้างตอนนี้ที่จะแก้ไขปัญหานี้หรือไม่?
372 postgresql 

21
ฆ่าเซสชัน / การเชื่อมต่อ postgresql
ฉันจะฆ่าการเชื่อมต่อ postgresql ทั้งหมดได้อย่างไร ฉันพยายามrake db:dropแต่ฉันได้รับ: ERROR: database "database_name" is being accessed by other users DETAIL: There are 1 other session(s) using the database. ฉันได้ลองปิดกระบวนการที่ฉันเห็นจาก a ps -ef | grep postgresแต่มันไม่ทำงาน: kill: kill 2358 failed: operation not permitted

6
สร้าง UUID ใน Postgres สำหรับคำสั่งแทรก?
คำถามของฉันค่อนข้างง่าย ฉันตระหนักถึงแนวคิดของ UUID และฉันต้องการสร้างขึ้นเพื่ออ้างถึง 'รายการ' แต่ละรายการจาก 'ร้านค้า' ในฐานข้อมูลของฉันด้วย ดูเหมือนว่าเหมาะสมใช่ไหม ปัญหาคือบรรทัดต่อไปนี้ส่งคืนข้อผิดพลาด: honeydb=# insert into items values( uuid_generate_v4(), 54.321, 31, 'desc 1', 31.94); ERROR: function uuid_generate_v4() does not exist LINE 2: uuid_generate_v4(), 54.321, 31, 'desc 1', 31.94); ^ HINT: No function matches the given name and argument types. You might need to …

5
คำสั่ง“ ใช้ database_name” ใน PostgreSQL
ฉันเริ่มต้นกับ PostgreSQL ฉันต้องการเชื่อมต่อกับฐานข้อมูลอื่นจากเครื่องมือแก้ไขแบบสอบถามของ Postgres - เช่นUSEคำสั่งของ MySQL หรือ MS SQL Server ฉันพบ\c databasenameโดยการค้นหาอินเทอร์เน็ต แต่มันทำงานบนpsqlเท่านั้น เมื่อฉันลองจากเครื่องมือแก้ไขแบบสอบถาม PostgreSQL ฉันได้รับข้อผิดพลาดทางไวยากรณ์ ฉันต้องเปลี่ยนฐานข้อมูลโดย pgscripting ไม่มีใครรู้วิธีการทำ

17
Postgres: INSERT หากไม่มีอยู่แล้ว
ฉันใช้ Python เพื่อเขียนไปยังฐานข้อมูล postgres: sql_string = "INSERT INTO hundred (name,name_slug,status) VALUES (" sql_string += hundred + ", '" + hundred_slug + "', " + status + ");" cursor.execute(sql_string) แต่เนื่องจากแถวบางแถวของฉันเหมือนกันฉันได้รับข้อผิดพลาดต่อไปนี้: psycopg2.IntegrityError: duplicate key value violates unique constraint "hundred_pkey" ฉันจะเขียนคำว่า 'INSERT ได้อย่างไรถ้าไม่มีคำสั่ง SQL อยู่แล้ว? ฉันเคยเห็นข้อความที่ซับซ้อนเช่นนี้แนะนำ: IF EXISTS (SELECT * FROM invoices WHERE …

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