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

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

4
ไม่สามารถสร้างตารางฐานข้อมูลชื่อ 'ผู้ใช้' ใน PostgreSQL
ดูเหมือนว่า PostgreSQL ไม่อนุญาตให้สร้างตารางฐานข้อมูลชื่อ 'ผู้ใช้' แต่ MySQL จะอนุญาตให้สร้างตารางดังกล่าว นั่นเป็นเพราะมันเป็นคำสำคัญ? แต่ Hibernate ไม่สามารถระบุปัญหาใด ๆ (แม้ว่าเราจะตั้งค่า PostgreSQLDialect)

10
PostgreSQL: วัน / เดือน / ปีระหว่างวันที่สองวัน
ฉันกำลังมองหาวิธีใช้ฟังก์ชัน SQLServer ลงวันที่ใน PostgreSQL นั่นคือ, ฟังก์ชันนี้จะคืนค่าจำนวน (เป็นค่าจำนวนเต็มที่ลงนาม) ของขอบเขตวันที่ที่ระบุที่ข้ามระหว่างวันที่เริ่มต้นและวันที่สิ้นสุดที่ระบุ datediff(dd, '2010-04-01', '2012-03-05') = 704 // 704 changes of day in this interval datediff(mm, '2010-04-01', '2012-03-05') = 23 // 23 changes of month datediff(yy, '2010-04-01', '2012-03-05') = 2 // 2 changes of year ฉันรู้ว่าฉันสามารถทำ 'dd' ได้โดยใช้การแยกส่วน แต่มีความคิดเกี่ยวกับอีกสองอย่างหรือไม่
94 postgresql  date 


3
อัปเดตชื่อข้อ จำกัด ใน PostgreSQL
เป็นไปได้ไหมที่จะเปลี่ยนชื่อข้อ จำกัด ใน Postgres ฉันมี PK เพิ่มด้วย: ALTER TABLE contractor_contractor ADD CONSTRAINT commerce_contractor_pkey PRIMARY KEY(id); และฉันต้องการใช้ชื่ออื่นเพื่อให้สอดคล้องกับส่วนที่เหลือของระบบ ฉันจะลบข้อ จำกัด PK ที่มีอยู่และสร้างใหม่ได้หรือไม่? หรือมีวิธีจัดการแบบ 'มั่วนิ่ม' หรือไม่? ขอบคุณ!

5
org.postgresql.util.PSQLException: FATAL: ขออภัยมีลูกค้ามากเกินไปแล้ว
ฉันพยายามเชื่อมต่อกับฐานข้อมูล Postgresql ฉันได้รับข้อผิดพลาดต่อไปนี้: ข้อผิดพลาด: org.postgresql.util.PSQLException: FATAL: ขออภัยมีลูกค้ามากเกินไปแล้ว ข้อผิดพลาดหมายถึงอะไรและฉันจะแก้ไขได้อย่างไร server.propertiesไฟล์ของฉันกำลังติดตาม: serverPortData=9042 serverPortCommand=9078 trackConnectionURL=jdbc:postgresql://127.0.0.1:5432/vTrack?user=postgres password=postgres dst=1 DatabaseName=vTrack ServerName=127.0.0.1 User=postgres Password=admin MaxConnections=90 InitialConnections=80 PoolSize=100 MaxPoolSize=100 KeepAliveTime=100 TrackPoolSize=120 TrackMaxPoolSize=120 TrackKeepAliveTime=100 PortNumber=5432 Logging=1
93 java  sql  postgresql  jdbc 

12
ตัวอย่างสุ่มอย่างง่ายจากฐานข้อมูล Sql
ฉันจะใช้ตัวอย่างสุ่มอย่างง่ายที่มีประสิทธิภาพใน SQL ได้อย่างไร ฐานข้อมูลที่เป็นปัญหากำลังเรียกใช้ MySQL ตารางของฉันมีอย่างน้อย 200,000 แถวและฉันต้องการตัวอย่างสุ่มอย่างง่ายประมาณ 10,000 คำตอบที่ "ชัดเจน" คือ: SELECT * FROM table ORDER BY RAND() LIMIT 10000 สำหรับตารางขนาดใหญ่มันช้าเกินไปมันเรียกRAND()ทุกแถว (ซึ่งวางไว้ที่ O (n)) แล้วเรียงลำดับทำให้เป็น O (n lg n) ได้ดีที่สุด มีวิธีทำเร็วกว่า O (n) หรือไม่? หมายเหตุ : ในฐานะที่เป็นแอนดรูเหมาชี้ให้เห็นในความคิดเห็นที่หากคุณใช้วิธีการนี้ใน SQL Server คุณควรใช้ฟังก์ชั่น T-SQL NEWID()เพราะ RAND () อาจจะกลับมาเป็นค่าเดียวกันสำหรับทุกแถว แก้ไข: 5 ปีต่อมา ฉันพบปัญหานี้อีกครั้งด้วยตารางที่ใหญ่กว่าและลงเอยด้วยการใช้โซลูชันของ …
93 mysql  sql  postgresql  random 

9
จะเปรียบเทียบข้อมูลระหว่างสองฐานข้อมูลใน PostgreSQL ได้อย่างไร?
เป็นไปได้หรือไม่ที่จะเปรียบเทียบฐานข้อมูลสองฐานข้อมูลที่มีโครงสร้างเหมือนกัน สมมติว่าฉันมีสองฐานข้อมูล DB1 และ DB2 และฉันต้องการตรวจสอบว่ามีความแตกต่างในข้อมูลหรือไม่

5
Rails กำหนดรหัสอัตโนมัติที่มีอยู่แล้ว
ฉันสร้างสถิติใหม่ดังนี้: truck = Truck.create(:name=>name, :user_id=>2) ขณะนี้ฐานข้อมูลของฉันมีเอนทิตีสำหรับรถบรรทุกหลายพันรายการ แต่ฉันกำหนดรหัสให้กับหลาย ๆ รายการในลักษณะที่ทำให้มี ID บางส่วน สิ่งที่เกิดขึ้นคือรางสร้างรายการที่มี id = 150 และใช้งานได้ดี แต่มันพยายามสร้างไอเท็มและกำหนด id = 151 แต่ id นั้นอาจมีอยู่แล้วดังนั้นฉันจึงเห็นข้อผิดพลาดนี้: ActiveRecord::RecordNotUnique (PG::Error: ERROR: duplicate key value violates unique constraint "companies_pkey" DETAIL: Key (id)=(151) already exists. และในครั้งต่อไปที่ฉันเรียกใช้แอคชันมันจะกำหนด id 152 ซึ่งจะทำงานได้ดีหากยังไม่ได้ใช้ค่านั้น ฉันจะรับรางเพื่อตรวจสอบว่ามี ID อยู่แล้วก่อนกำหนดได้อย่างไร ขอบคุณ! แก้ไข รหัสรถบรรทุกคือสิ่งที่ถูกทำซ้ำ มีผู้ใช้อยู่แล้วและเป็นค่าคงที่ในกรณีนี้ จริงๆแล้วมันเป็นปัญหาเดิมที่ฉันต้องจัดการ …

30
pgadmin4: ไม่สามารถติดต่อแอ็พพลิเคชันเซิร์ฟเวอร์ postgresql ได้
ฉันได้ติดตั้ง PostgreSQL 9.6.2 บน Windows 8.1 แล้ว แต่ pgadmin4 ไม่สามารถติดต่อกับเซิร์ฟเวอร์ภายในเครื่องได้ ฉันได้ลองใช้วิธีแก้ปัญหาหลายอย่างที่แนะนำที่นี่ใน stackoverflow พยายามถอนการติดตั้งและติดตั้ง PostgreSQL 9.6.2 ใหม่พยายามแก้ไข config.py, config_distro.py และลบไฟล์ในโฟลเดอร์ Roaming ฉันลองติดตั้ง pgadmin4 แบบสแตนด์อโลน แต่ไม่สำเร็จ อย่างไรก็ตามในเครื่องท้องถิ่นของฉันฉันสามารถเข้าถึงเซิร์ฟเวอร์โดยใช้ psql.exe และเข้าสู่ระบบในฐานะ superuser (ผู้ใช้ postgres) คุณช่วยแนะนำแนวทางแก้ไขที่เป็นไปได้ในการเริ่ม / รัน pgadmin4 ได้หรือไม่? ขอบคุณ.

2
มอบทั้งหมดบนสคีมาเฉพาะในฐานข้อมูลให้กับบทบาทกลุ่มใน PostgreSQL
เมื่อใช้ PostgreSQL 9.0 ฉันมีบทบาทกลุ่มที่เรียกว่า "staff" และต้องการให้สิทธิ์ทั้งหมด (หรือบางอย่าง) กับบทบาทนี้บนตารางในสคีมาเฉพาะ ไม่มีงานต่อไปนี้ GRANT ALL ON SCHEMA foo TO staff; GRANT ALL ON DATABASE mydb TO staff; สมาชิกของ "staff" ยังไม่สามารถเลือกหรืออัปเดตตารางแต่ละตารางในสคีมา "foo" หรือ (ในกรณีของคำสั่งที่สอง) ไปยังตารางใดก็ได้ในฐานข้อมูลเว้นแต่ฉันจะให้สิทธิ์ทั้งหมดในตารางนั้น ฉันจะทำอย่างไรให้ชีวิตของฉันและผู้ใช้ง่ายขึ้น ปรับปรุง:คิดออกด้วยความช่วยเหลือของคำถามที่คล้ายกันใน serverfault.com GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA foo TO staff;

5
วิธีคัดลอกจากไฟล์ CSV ไปยังตาราง PostgreSQL พร้อมส่วนหัวในไฟล์ CSV
ฉันต้องการคัดลอกไฟล์ CSV ไปยังตาราง Postgres มีคอลัมน์ประมาณ 100 คอลัมน์ในตารางนี้ดังนั้นฉันจึงไม่ต้องการเขียนซ้ำถ้าไม่ต้องทำ ผมใช้\copy table from 'table.csv' delimiter ',' csv;คำสั่ง ERROR: relation "table" does not existแต่ไม่มีตารางที่สร้างฉันได้รับ ถ้าฉันเพิ่มตารางเปล่าฉันไม่พบข้อผิดพลาด แต่ไม่มีอะไรเกิดขึ้น ฉันลองคำสั่งนี้สองหรือสามครั้งและไม่มีผลลัพธ์หรือข้อความใด ๆ แต่ตารางไม่ได้รับการอัปเดตเมื่อฉันตรวจสอบผ่าน PGAdmin มีวิธีการนำเข้าตารางที่มีส่วนหัวเหมือนที่ฉันพยายามทำหรือไม่

5
ฉันจะแทรกหลายค่าลงในตาราง postgres พร้อมกันได้อย่างไร
ฉันมีตารางที่พยายามอัปเดตหลายค่าพร้อมกัน นี่คือสคีมาตาราง: Column | Type | Modifiers ---------------+---------+----------- user_id | integer | subservice_id | integer | ฉันมีuser_idและต้องการแทรกหลายรายการsubservice_idพร้อมกัน มีไวยากรณ์Postgresไหมที่จะให้ฉันทำอะไรแบบนี้ insert into user_subservices(user_id, subservice_id) values(1, [1, 2, 3]); ฉันจะทำอย่างไร
93 postgresql 

5
Postgres: วิธีแปลงสตริง json เป็นข้อความ
ค่า Json อาจประกอบด้วยค่าสตริง เช่น.: postgres=# SELECT to_json('Some "text"'::TEXT); to_json ----------------- "Some \"text\"" ฉันจะแยกสตริงนั้นเป็นค่าข้อความ postgres ได้อย่างไร ::TEXTไม่ทำงาน ส่งคืน json ที่ยกมาไม่ใช่สตริงเดิม: postgres=# SELECT to_json('Some "text"'::TEXT)::TEXT; to_json ----------------- "Some \"text\"" ขอบคุณ. ปล. ฉันใช้ PostgreSQL 9.3
93 json  postgresql 

16
จะลบรายการที่ซ้ำกันได้อย่างไร?
ฉันต้องเพิ่มข้อ จำกัด เฉพาะให้กับตารางที่มีอยู่ ใช้ได้ดียกเว้นว่าตารางมีแถวเป็นล้านแถวแล้วและหลายแถวละเมิดข้อ จำกัด เฉพาะที่ฉันต้องเพิ่ม วิธีที่เร็วที่สุดในการลบแถวที่กระทำผิดคืออะไร ฉันมีคำสั่ง SQL ซึ่งค้นหารายการที่ซ้ำกันและลบออก แต่ต้องใช้เวลาตลอดไปในการรัน มีวิธีอื่นในการแก้ปัญหานี้หรือไม่? อาจจะสำรองตารางแล้วกู้คืนหลังจากเพิ่มข้อ จำกัด ?

2
แบบสอบถามย่อยใน FROM ต้องมีนามแฝง
ฉันมีแบบสอบถามนี้ที่ฉันเขียนใน PostgreSQL ซึ่งส่งกลับข้อผิดพลาดว่า: [Err] ข้อผิดพลาด: LINE 3: FROM (SELECT DISTINCT (identifiant) AS made_only_recharge นี่คือข้อความค้นหาทั้งหมด: SELECT COUNT (made_only_recharge) AS made_only_recharge FROM ( SELECT DISTINCT (identifiant) AS made_only_recharge FROM cdr_data WHERE CALLEDNUMBER = '0130' EXCEPT SELECT DISTINCT (identifiant) AS made_only_recharge FROM cdr_data WHERE CALLEDNUMBER != '0130' ) ฉันมีข้อความค้นหาที่คล้ายกันใน Oracle ซึ่งใช้งานได้ดี การเปลี่ยนแปลงเพียงอย่างเดียวคือสิ่งที่ฉันมีEXCEPTใน Oracle …

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