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

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

6
วิธีเชื่อมต่อกับ Postgres ผ่าน Node.js
ฉันพบว่าตัวเองกำลังพยายามสร้างฐานข้อมูล postgres ดังนั้นฉันจึงติดตั้ง postgres และเริ่มเซิร์ฟเวอร์ด้วยinitdb /usr/local/pgsql/dataจากนั้นฉันก็เริ่มอินสแตนซ์นั้นโดยpostgres -D /usr/local/pgsql/dataตอนนี้ฉันจะโต้ตอบกับสิ่งนี้ผ่านโหนดได้อย่างไร ตัวอย่างเช่นจะconnectionstringเป็นอย่างไรหรือฉันจะรู้ได้อย่างไรว่ามันคืออะไร

10
สร้าง PostgreSQL ROLE (ผู้ใช้) หากไม่มีอยู่
ฉันจะเขียนสคริปต์ SQL เพื่อสร้าง ROLE ใน PostgreSQL 9.1 ได้อย่างไร แต่จะไม่เกิดข้อผิดพลาดหากมีอยู่แล้ว สคริปต์ปัจจุบันมี: CREATE ROLE my_user LOGIN PASSWORD 'my_password'; สิ่งนี้จะล้มเหลวหากมีผู้ใช้อยู่แล้ว ฉันต้องการสิ่งที่ต้องการ: IF NOT EXISTS (SELECT * FROM pg_user WHERE username = 'my_user') BEGIN CREATE ROLE my_user LOGIN PASSWORD 'my_password'; END; ... แต่ไม่ได้ผล - IFดูเหมือนจะไม่รองรับใน SQL ธรรมดา ฉันมีไฟล์แบตช์ที่สร้างฐานข้อมูล PostgreSQL 9.1 บทบาทและสิ่งอื่น ๆ อีกสองสามอย่าง เรียกว่า …

10
MySQL กับ PostgreSQL สำหรับเว็บแอปพลิเคชัน [ปิด]
ตามที่กล่าวมาในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบถาม & ตอบของเรา เราคาดหวังว่าคำตอบจะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้อาจก่อให้เกิดการถกเถียงโต้แย้งการสำรวจความคิดเห็นหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงได้และอาจเปิดขึ้นมาใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อรับคำแนะนำ ปิดให้บริการใน7 ปีที่ผ่านมา ฉันกำลังทำงานกับเว็บแอปพลิเคชันโดยใช้ Python (Django) และต้องการทราบว่า MySQL หรือ PostgreSQL จะเหมาะสมกว่าหรือไม่เมื่อนำไปใช้งานจริง ในพอดคาสต์หนึ่งJoel กล่าวว่าเขามีปัญหาบางอย่างกับ MySQL และข้อมูลไม่สอดคล้องกัน ฉันต้องการทราบว่ามีใครมีปัญหาดังกล่าวบ้าง นอกจากนี้เมื่อพูดถึงประสิทธิภาพที่สามารถปรับแต่งได้อย่างง่ายดาย?
122 mysql  postgresql 

1
postgresql ไวยากรณ์คีย์ต่างประเทศ
ฉันมี 2 ตารางดังที่คุณจะเห็นในรหัส posgresql ด้านล่าง นักเรียนในตารางแรกมี 2 คอลัมน์คอลัมน์หนึ่งสำหรับ student_name และ student_id อื่น ๆ ซึ่งเป็นคีย์หลัก ในตารางที่สองของฉันเรียกว่าการทดสอบมี 4 คอลัมน์คอลัมน์หนึ่งสำหรับ subject_id หนึ่งคอลัมน์สำหรับชื่อเรื่องและอีกคอลัมน์สำหรับนักเรียนที่มีคะแนนสูงสุดในวิชาที่สูงที่สุดนักเรียน_id ฉันกำลังพยายามทำให้ maximumStudent_id อ้างถึง student_id ในตารางนักเรียนของฉัน นี่คือรหัสที่ฉันมีด้านล่างฉันไม่แน่ใจว่าไวยากรณ์ถูกต้องหรือไม่: CREATE TABLE students ( student_id SERIAL PRIMARY KEY, player_name TEXT); CREATE TABLE tests ( subject_id SERIAL, subject_name, highestStudent_id SERIAL REFERENCES students); ไวยากรณ์highestStudent_id SERIAL REFERENCES studentsถูกต้องหรือไม่ …

8
PostgreSQL - วิธีลดผู้ใช้อย่างรวดเร็วด้วยสิทธิ์ที่มีอยู่
ฉันกำลังพยายามสร้างผู้ใช้ DB แบบ จำกัด สำหรับแอปที่ฉันกำลังทำงานอยู่และฉันต้องการปล่อยผู้ใช้ฐานข้อมูล Postgres ที่ฉันใช้ในการทดลอง มีวิธีใดบ้างที่จะทิ้งผู้ใช้โดยไม่ต้องเพิกถอนสิทธิ์ทั้งหมดด้วยตนเองก่อนหรือเพิกถอนสิทธิ์ทั้งหมดที่ผู้ใช้มี
122 postgresql 

5
การเชื่อมต่อ Django กับ PostgreSQL:“ การพิสูจน์ตัวตนแบบเพียร์ล้มเหลว”
OperationalError at /admin/ FATAL: Peer authentication failed for user "myuser" นี่เป็นข้อผิดพลาดที่ฉันได้รับเมื่อพยายามเข้าสู่ไซต์ผู้ดูแลระบบ Django ของฉัน ฉันใช้ฐานข้อมูล MySQL แล้วไม่มีปัญหา ฉันยังใหม่กับ PostgreSQL แต่ตัดสินใจเปลี่ยนเพราะโฮสต์ที่ฉันวางแผนจะใช้สำหรับโปรเจ็กต์นี้ในท้ายที่สุดไม่มี MySQL ดังนั้นฉันคิดว่าฉันสามารถทำตามขั้นตอนการติดตั้ง PostgreSQL เรียกใช้syncdbและตั้งค่าทั้งหมด ปัญหาคือดูเหมือนว่าฉันไม่สามารถให้แอปเชื่อมต่อกับฐานข้อมูลได้ ฉันสามารถล็อกอินเข้าสู่ PostgreSQL ผ่านทางบรรทัดคำสั่งหรือแอพเดสก์ท็อปที่ดาวน์โหลดมา แค่ไม่ได้อยู่ในสคริปต์ นอกจากนี้ฉันสามารถใช้manage.py shellเพื่อเข้าถึงฐานข้อมูลได้ดี ความคิดใด ๆ ?
122 django  postgresql 

5
Django-DB-Migrations: ไม่สามารถแก้ไขตารางได้เนื่องจากมีเหตุการณ์ทริกเกอร์ที่รอดำเนินการ
ฉันต้องการลบ null = True จาก TextField: - footer=models.TextField(null=True, blank=True) + footer=models.TextField(blank=True, default='') ฉันสร้างการย้ายสคีมา: manage.py schemamigration fooapp --auto เนื่องจากคอลัมน์ส่วนท้ายบางคอลัมน์มีNULLฉันจึงได้รับสิ่งนี้errorหากฉันเรียกใช้การย้ายข้อมูล: django.db.utils.IntegrityError: คอลัมน์ "footer" มีค่า null ฉันเพิ่มสิ่งนี้ในการย้ายสคีมา: for sender in orm['fooapp.EmailSender'].objects.filter(footer=None): sender.footer='' sender.save() ตอนนี้ฉันได้รับ: django.db.utils.DatabaseError: cannot ALTER TABLE "fooapp_emailsender" because it has pending trigger events เกิดอะไรขึ้น?

3
การใช้ประโยชน์บนโครงการทำอะไรได้บ้าง?
ฉันกำลังพยายามสร้างฐานข้อมูล Postgres เป็นครั้งแรกดังนั้นนี่อาจเป็นคำถามโง่ ๆ ฉันกำหนดสิทธิ์พื้นฐานแบบอ่านอย่างเดียวให้กับบทบาท db ที่ต้องเข้าถึงฐานข้อมูลจากสคริปต์ php ของฉันและฉันอยากรู้อยากเห็น: ถ้าฉันดำเนินการ GRANT some_or_all_privileges ON ALL TABLES IN SCHEMA schema TO role; มีความจำเป็นต้องดำเนินการด้วยหรือไม่ GRANT USAGE ON SCHEMA schema TO role; ? จากเอกสารประกอบ : การใช้งาน: สำหรับสคีมาอนุญาตให้เข้าถึงอ็อบเจ็กต์ที่มีอยู่ในสคีมาที่ระบุ (สมมติว่าตรงตามข้อกำหนดสิทธิ์ของอ็อบเจ็กต์เอง) โดยพื้นฐานแล้วสิ่งนี้ช่วยให้ผู้รับสิทธิ์ "ค้นหา" วัตถุภายในสคีมา ฉันคิดว่าถ้าฉันสามารถเลือกหรือจัดการข้อมูลใด ๆ ที่มีอยู่ในสคีมาฉันสามารถเข้าถึงออบเจ็กต์ใด ๆ ของสคีมาเองได้ ฉันผิดเหรอ? ถ้าไม่GRANT USAGE ON SCHEMAใช้ทำอะไร? และเอกสารประกอบหมายความว่าอย่างไรกับ "สมมติว่ามีคุณสมบัติตรงตามข้อกำหนดสิทธิพิเศษของออบเจ็กต์"

4
ตรวจสอบว่าอาร์เรย์ Postgres JSON มีสตริงหรือไม่
ฉันมีโต๊ะสำหรับเก็บข้อมูลเกี่ยวกับกระต่ายของฉัน ดูเหมือนว่า: create table rabbits (rabbit_id bigserial primary key, info json not null); insert into rabbits (info) values ('{"name":"Henry", "food":["lettuce","carrots"]}'), ('{"name":"Herald","food":["carrots","zucchini"]}'), ('{"name":"Helen", "food":["lettuce","cheese"]}'); ฉันจะหากระต่ายที่ชอบแครอทได้อย่างไร? ฉันคิดสิ่งนี้: select info->>'name' from rabbits where exists ( select 1 from json_array_elements(info->'food') as food where food::text = '"carrots"' ); ฉันไม่ชอบข้อความค้นหานั้น มันเป็นเรื่องยุ่ง ในฐานะผู้ดูแลกระต่ายเต็มเวลาฉันไม่มีเวลาเปลี่ยนสคีมาฐานข้อมูล ฉันแค่อยากเลี้ยงกระต่ายของฉันอย่างถูกต้อง มีวิธีที่อ่านง่ายขึ้นในการทำแบบสอบถามนั้นหรือไม่?

3
Postgres: แตกต่างกัน แต่สำหรับคอลัมน์เดียว
ฉันมีตารางใน pgsql ที่มีชื่อ (มีมากกว่า 1 แถว mio) แต่ฉันก็มีรายการที่ซ้ำกันมากมาย ผมเลือก 3 idสาขา: name, metadata, ฉันต้องการเลือกแบบสุ่มด้วยORDER BY RANDOM()และLIMIT 1000ดังนั้นฉันจึงทำเช่นนี้หลายขั้นตอนเพื่อบันทึกหน่วยความจำในสคริปต์ PHP ของฉัน แต่ฉันจะทำเช่นนั้นได้อย่างไรเพื่อให้มีรายชื่อที่ไม่มีชื่อซ้ำกัน ตัวอย่าง[1,"Michael Fox","2003-03-03,34,M,4545"]จะถูกส่งกลับ [2,"Michael Fox","1989-02-23,M,5633"]แต่ไม่ ช่องชื่อมีความสำคัญที่สุดและต้องไม่ซ้ำกันในรายการทุกครั้งที่เลือกและต้องสุ่ม ฉันลองด้วยGROUP BY namebu แล้วคาดว่าฉันจะมี id และ metadata ในGROUP BYเช่นกันหรือในฟังก์ชัน aggragate แต่ฉันไม่ต้องการให้มีการกรองอย่างใด มีใครรู้วิธีดึงข้อมูลหลายคอลัมน์ แต่แยกเฉพาะคอลัมน์เดียว

4
การใช้ pg_dump เพื่อรับคำสั่งแทรกจากตารางเดียวภายในฐานข้อมูล
ฉันกำลังมองหาวิธีรับแถวทั้งหมดเป็นINSERTคำสั่งจากตารางเฉพาะหนึ่งตารางภายในฐานข้อมูลโดยใช้pg_dumpใน PostgreSQL เช่นฉันมีตาราง A และแถวทั้งหมดในตาราง AI ต้องการเป็นINSERTคำสั่งก็ควรถ่ายโอนข้อความเหล่านั้นไปยังไฟล์ด้วย เป็นไปได้หรือไม่
121 postgresql 

5
Heroku“ psql: FATAL: ช่องเชื่อมต่อที่เหลือถูกสงวนไว้สำหรับการเชื่อมต่อ superuser ที่ไม่ใช่การจำลองแบบ”
ฉันกำลังพัฒนาแอปบน Heroku พร้อมแบ็กเอนด์ Postgresql เป็นระยะ ๆ ฉันได้รับข้อความแสดงข้อผิดพลาดนี้เมื่อพยายามเข้าถึงฐานข้อมูลทั้งจาก CLI และจากการโหลดเพจบนเซิร์ฟเวอร์: psql: FATAL: remaining connection slots are reserved for non-replication superuser connections ใครเคยเห็นสิ่งนี้มาก่อนหรือโปรดช่วยชี้ทางที่ถูกต้องให้ฉัน?
120 postgresql  heroku 

8
คำอธิบายประกอบไฮเบอร์เนตที่เหมาะสมสำหรับไบต์ []
ฉันมีแอปพลิเคชันที่ใช้คำอธิบายประกอบไฮเบอร์เนต 3.1 และ JPA มีออบเจ็กต์สองสามรายการที่มีแอตทริบิวต์ไบต์ [] (ขนาด 1k - 200k) มันใช้คำอธิบายประกอบ JPA @Lob และ hibernate 3.1 สามารถอ่านสิ่งเหล่านี้ได้ดีในฐานข้อมูลหลักทั้งหมด - ดูเหมือนว่าจะซ่อนลักษณะเฉพาะของผู้ขาย JDBC Blob (ตามที่ควรทำ) @Entity public class ConfigAttribute { @Lob public byte[] getValueBuffer() { return m_valueBuffer; } } เราต้องอัปเกรดเป็น 3.5 เมื่อเราพบว่าไฮเบอร์เนต 3.5 หยุดพัก (และจะไม่แก้ไข)ชุดคำอธิบายประกอบนี้ใน postgresql (โดยไม่มีวิธีแก้ปัญหา) ฉันยังไม่พบการแก้ไขที่ชัดเจน แต่ฉันสังเกตเห็นว่าถ้าฉันเพิ่งลบ @Lob ออกมันจะใช้ไบต์ประเภท postgresql (ซึ่งใช้ได้ …

22
Psql ไม่สามารถเชื่อมต่อกับเซิร์ฟเวอร์: ไม่มีไฟล์หรือไดเร็กทอรีดังกล่าวข้อผิดพลาด 5432?
ฉันพยายามรันpsqlบนเครื่อง Vagrant แต่ได้รับข้อผิดพลาดนี้: psql: could not connect to server: No such file or directory Is the server running locally and accepting connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"? หมายเหตุ: Vagrant 1.9.2 Box: ubuntu / trusty64, https://atlas.hashicorp.com/ubuntu/boxes/trusty64 แก้ไข คำสั่งที่ฉันใช้เพื่อติดตั้งและเรียกใช้ postgres: sudo apt-get update sudo apt-get install postgresql sudo su postgres psql -d …

3
ฉันควรเลือกประเภทการประทับเวลาในฐานข้อมูล PostgreSQL
ฉันต้องการกำหนดแนวทางปฏิบัติที่ดีที่สุดสำหรับการจัดเก็บการประทับเวลาในฐานข้อมูล Postgres ของฉันในบริบทของโครงการหลายเขตเวลา ฉันสามารถ เลือกTIMESTAMP WITHOUT TIME ZONEและจำว่าเขตเวลาใดถูกใช้ในเวลาแทรกสำหรับฟิลด์นี้ เลือกTIMESTAMP WITHOUT TIME ZONEและเพิ่มเขตข้อมูลอื่นซึ่งจะมีชื่อของเขตเวลาที่ใช้ในเวลาแทรก เลือกTIMESTAMP WITH TIME ZONEและแทรกการประทับเวลาตามนั้น ฉันมีความต้องการเล็กน้อยสำหรับตัวเลือก 3 (การประทับเวลาพร้อมเขตเวลา) แต่ต้องการความคิดเห็นที่มีความรู้เกี่ยวกับเรื่องนี้

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