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

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

2
PgAdmin III - วิธีเชื่อมต่อกับฐานข้อมูลเมื่อรหัสผ่านว่างเปล่า?
คำถามนี้ถูกโยกย้ายจากข้อผิดพลาดเซิร์ฟเวอร์เนื่องจากสามารถตอบได้ในการแลกเปลี่ยนผู้ดูแลฐานข้อมูล อพยพ 8 ปีที่ผ่านมา ฉันติดตั้ง PostgreSQL 9.1 บนพีซีของฉัน (Win 7) ฉันมีแอปพลิเคชัน Java ขนาดเล็กเชื่อมต่อกับlogin=saและpassword=""ด้วย การเชื่อมต่อใช้งานได้ อย่างไรก็ตามมันถูกปฏิเสธจาก PgAdmin III เอง ฉันเข้าใจ: Error connecting to the server: fe_sendauth: no password supplied ฉันจะเชื่อมต่อกับฐานข้อมูลของฉันจาก PgAdmin III ด้วยรหัสผ่านว่างได้อย่างไร แก้ไข นี่เป็นเพียงการทดสอบไม่ใช่รหัสการผลิต

6
เลือกคอลัมน์ภายใน json_agg
ฉันมีคำถามเช่น: SELECT a.id, a.name, json_agg(b.*) as "item" FROM a JOIN b ON b.item_id = a.id GROUP BY a.id, a.name; ฉันจะเลือกคอลัมน์ในbดังนั้นฉันไม่ได้มีb.item_idในวัตถุ JSON ได้อย่างไร ฉันได้อ่านเกี่ยวกับROWแต่มันกลับวัตถุ JSON เช่น: {"f1": "Foo", "f2": "Bar"} ฉันจะต้องทำการแมปวัตถุ JSON อีกครั้งเมื่อมีการดึงข้อมูลเพื่อให้ตรงกับคีย์คอลัมน์ที่เหมาะสม ฉันต้องการหลีกเลี่ยงปัญหานั้นและเก็บชื่อคอลัมน์เดิมไว้

5
แบบสอบถามเพื่อส่งกลับชื่อคอลัมน์ผลลัพธ์และชนิดข้อมูลของแบบสอบถามตารางหรือมุมมอง
มีแบบสอบถามหรือคำสั่ง PostgreSQL ที่ส่งคืนชื่อเขตข้อมูลและชนิดเขตข้อมูลของแบบสอบถามตารางหรือมุมมองหรือไม่ เช่นวิธีแก้ปัญหาหากนำไปใช้กับแบบสอบถาม SELECT อย่างง่ายเช่นSELECT * from personควรส่งคืนรายการเช่น: Column Name | Column Type =========================== First Name | character Last Name | character Age | integer Date of Birth | date ฉันค้นหาinformation_schemaมุมมองที่อธิบายไว้ในคำตอบด้านล่างและดูเหมือนว่าจะครอบคลุมตารางค่อนข้างดีและฉันคิดว่ามันครอบคลุมมุมมองเช่นกัน แต่ฉันยังไม่ได้ตรวจสอบ สุดท้ายเป็นข้อ ๆ แต่ที่ถูกต้องเช่นแบบสอบถาม SELECT เกี่ยวข้องกับJOINS, UNIONSฯลฯ ในฐานข้อมูล มีขั้นตอนในตัวหรือโพรซีเดอร์หรือสคริปต์อื่นที่เก็บไว้ซึ่งสามารถส่งคืนค่าเดียวกันสำหรับ QUERY ที่ถูกต้องได้หรือไม่? ฉันกำลังพัฒนาโปรแกรมที่สร้างข้อมูลและแบบฟอร์มการสืบค้นและต้องการข้อมูลสำหรับการตรวจสอบความถูกต้องของข้อมูลและการใช้งานฟังก์ชันในข้อมูลที่ส่งคืน

3
ฉันสามารถกำหนดค่าเริ่มต้นสำหรับการเข้าร่วมด้านนอกด้านซ้ายได้หรือไม่
สมมติว่าฉันมีตาราง a (พร้อมคอลัมน์ a1) และ b (กับคอลัมน์ b1 และ b2) และฉันดำเนินการเข้าร่วมด้านนอกด้านซ้าย SELECT * FROM a LEFT OUTER JOIN b ON a.a1 = b.b1 จากนั้น b1 และ b2 จะเป็น NULL โดยที่ค่า a1 ไม่มีค่าที่ตรงกันของ b1 ฉันสามารถให้ค่าเริ่มต้นสำหรับ b2 แทน NULL ได้หรือไม่? หมายเหตุที่เชื่อมต่อกันจะไม่ทำงานที่นี่เพราะผมไม่ต้องการให้ค่าเริ่มต้นที่จะแทนที่ NULLs ศักยภาพใน B2 ที่มีเป็นค่าของการจับคู่ a1 b1 นั่นคือด้วยและ a เป็น CREATE TABLE …
21 postgresql  join 

3
ค้นหาคำจำกัดความของมุมมองที่ปรากฏใน Postgres
ฉันสงสัยว่าจะค้นหาคำจำกัดความของมุมมองที่ปรากฏใน Postgres ได้อย่างไร สำหรับการอ้างอิงสิ่งที่ฉันหวังว่าจะทำนั้นคล้ายกับสิ่งที่คุณสามารถทำได้สำหรับมุมมองปกติ: SELECT * FROM information_schema.views WHERE table_name = 'some_view'; ซึ่งให้คอลัมน์ต่อไปนี้แก่คุณ: table_catalog table_schema table_name view_definition check_option is_updatable is_insertable_into is_trigger_updatable is_trigger_deletable is_trigger_insertable_into สิ่งนี้เป็นไปได้หรือไม่สำหรับมุมมองที่ปรากฏขึ้น จากการวิจัยของฉันจนถึงขณะนี้ปรากฏว่ามุมมองที่เป็นรูปธรรมได้รับการยกเว้นโดยเจตนาจาก information_schema เพราะ information_schema สามารถแสดงวัตถุที่มีอยู่ในมาตรฐาน SQL เท่านั้น ( http://www.postgresql.org/message-id/3794.1412980686@sss.pgh.pa.us ) เนื่องจากดูเหมือนว่าพวกเขาจะถูกแยกออกจาก information_schema ทั้งหมดฉันไม่แน่ใจว่าจะทำอย่างไร แต่สิ่งที่ฉันต้องการทำคือทวีคูณ: สอบถามว่ามีมุมมองที่ปรากฏขึ้นโดยเฉพาะหรือไม่ (จนถึงตอนนี้วิธีเดียวที่ฉันพบว่าทำคือลองสร้างมุมมอง mat ด้วยชื่อเดียวกันและดูว่ามันระเบิดขึ้นหรือไม่) จากนั้นสอบถามคำจำกัดความของมุมมองที่ปรากฏขึ้น (คล้ายกับview_definitionคอลัมน์บนinformation_schema.views)

2
“ Recheck Cond:” บรรทัดในแผนคิวรีพร้อมการสแกนดัชนีบิตแมป
นี่คือการแยกความคิดเห็นจากคำถามก่อนหน้า: Postgres 9.4.4 แบบสอบถามใช้เวลาตลอดไป ใช้ PostgreSQL 9.4 มีเสมอดูเหมือนว่าจะเป็นสายหลังจากสแกนดัชนีบิตแมปในการส่งออกแผนแบบสอบถามโดยRecheck Cond:EXPLAIN กดไลค์ในEXPLAINผลลัพธ์ของคำถามอ้างอิง: -> Bitmap Heap Scan on table_three (cost=2446.92..19686.74 rows=8159 width=7) Recheck Cond: (("timestamp" > (now() - '30 days'::interval)) AND (client_id > 0)) -> BitmapAnd (cost=2446.92..2446.92 rows=8159 width=0) -> Bitmap Index Scan on table_one_timestamp_idx (cost=0.00..1040.00 rows=79941 width=0) Index Cond: ("timestamp" > (now() …

1
ผลรวมกลิ้ง / นับ / เฉลี่ยในช่วงวันที่
ในฐานข้อมูลของธุรกรรมที่ครอบคลุม 1,000 กิจการในระยะเวลา 18 เดือนฉันต้องการเรียกใช้แบบสอบถามเพื่อจัดกลุ่มทุกช่วงเวลา 30 วันที่เป็นไปได้โดยentity_idใช้ SUM ของจำนวนธุรกรรมและ COUNT ของธุรกรรมในช่วง 30 วันนั้นและ คืนค่าข้อมูลในวิธีที่ฉันสามารถสอบถามได้ หลังจากการทดสอบจำนวนมากรหัสนี้บรรลุสิ่งที่ฉันต้องการ: SELECT id, trans_ref_no, amount, trans_date, entity_id, SUM(amount) OVER(PARTITION BY entity_id, date_trunc('month',trans_date) ORDER BY entity_id, trans_date ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) AS trans_total, COUNT(id) OVER(PARTITION BY entity_id, date_trunc('month',trans_date) ORDER BY entity_id, trans_date ROWS BETWEEN …

4
การรวมช่วงแยกเป็นช่วงที่ใหญ่ที่สุดที่เป็นไปได้
ฉันกำลังพยายามรวมช่วงวันที่หลายช่วง (การโหลดของฉันมีค่าสูงสุด 500 กรณีส่วนใหญ่ 10) ที่อาจหรือไม่ทับซ้อนกับช่วงวันที่ต่อเนื่องที่ใหญ่ที่สุดที่เป็นไปได้ ตัวอย่างเช่น: ข้อมูล: CREATE TABLE test ( id SERIAL PRIMARY KEY NOT NULL, range DATERANGE ); INSERT INTO test (range) VALUES (DATERANGE('2015-01-01', '2015-01-05')), (DATERANGE('2015-01-01', '2015-01-03')), (DATERANGE('2015-01-03', '2015-01-06')), (DATERANGE('2015-01-07', '2015-01-09')), (DATERANGE('2015-01-08', '2015-01-09')), (DATERANGE('2015-01-12', NULL)), (DATERANGE('2015-01-10', '2015-01-12')), (DATERANGE('2015-01-10', '2015-01-12')); ตารางดูเหมือนว่า: id | range ----+------------------------- 1 | [2015-01-01,2015-01-05) …

6
นับว่าคอลัมน์สองแถวขึ้นไปในแถวหนึ่งมีค่าเกินกว่าค่าใด [บาสเกตบอลคู่คู่สามเท่า]
ฉันเล่นเกมบาสเก็ตบอลที่อนุญาตให้ส่งออกสถิติเป็นไฟล์ฐานข้อมูลดังนั้นจึงสามารถคำนวณสถิติจากเกมที่ไม่ได้นำมาใช้ในเกมได้ จนถึงตอนนี้ฉันก็ไม่มีปัญหาในการคำนวณสถิติที่ฉันต้องการ แต่ตอนนี้ฉันพบปัญหา: การนับจำนวน double double และ / หรือ triple doubles ที่ผู้เล่นทำในช่วงฤดูกาลจากสถิติของเกม คำจำกัดความของ double double และ double double มีดังนี้: สองครั้งสองครั้ง: double-double ถูกกำหนดเป็นผลการทำงานที่ผู้เล่นสะสมตัวเลขสองหลักรวมในสองในห้าหมวดหมู่สถิติ - คะแนน, รีบาวน์, ช่วยเหลือ, ขโมยและช็อตที่ถูกบล็อก - ในเกม สามคู่: Triple-Double ถูกกำหนดให้เป็นการแสดงที่ผู้เล่นสะสมตัวเลขสองหลักรวมในสามในห้าหมวดหมู่สถิติ - คะแนน, รีบาวน์, ช่วยเหลือ, ขโมยและช็อตที่ถูกบล็อก - ในเกม Quadruple-double (เพิ่มเพื่อความกระจ่าง) quadruple-double ถูกกำหนดให้เป็นประสิทธิภาพที่ผู้เล่นสะสมตัวเลขสองหลักรวมในสี่ในห้าหมวดหมู่ทางสถิติ ได้แก่ คะแนนรีบาวน์การช่วยเหลือการขโมยและช็อตที่ถูกบล็อกในเกม ตาราง "PlayerGameStats" จะเก็บสถิติสำหรับแต่ละเกมที่ผู้เล่นเล่นและมีลักษณะดังนี้: CREATE TABLE …

1
ความแตกต่างของประสิทธิภาพระหว่าง MySQL และ PostgreSQL สำหรับสคีมา / คิวรีเดียวกัน [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน6 ปีที่ผ่านมา ฉันเป็นมือใหม่ DBA และฉันมีประสบการณ์ใน Microsoft SQL Server แต่ฉันต้องการข้ามไปยัง FLOSS ฉันเริ่มต้น บริษัท และเราพัฒนาแอพ (PHP) ด้วยแบ็กเอนด์ Postgres และเราทำการทดสอบบางอย่างเปรียบเทียบกับ MySQL ด้วย เราสังเกตว่า MySQL นั้นเร็วกว่า PostgreSQL สองเท่า ฉันทำการทดสอบประสิทธิภาพที่เป็นรูปธรรม: คอลัมน์เดียวกันในตารางที่มีประเภทข้อมูลคอลัมน์เทียบเท่า จำนวนแถวเท่ากัน ดัชนีเดียวกันในทั้งสอง (รวมคีย์หลัก) โหลด CPU ไม่ได้ใช้งานและเครื่อง Postgres ดีกว่ามาก และแบบสอบถามเดียวกัน (ชัด) ผมทำอะไรผิดหรือเปล่า? PS: ฉันอ่าน "howtos" มากมายเกี่ยวกับการปรับแต่งประสิทธิภาพของเอ็นจิ้นฐานข้อมูล PS (2): เรากำลังใช้ InnoDB …

3
วิธีเพิ่มประสิทธิภาพฐานข้อมูลสำหรับ I / O หนักจากการอัปเดต (ซอฟต์แวร์และฮาร์ดแวร์)
สถานการณ์ ฉันมีฐานข้อมูล postgresql 9.2 ซึ่งค่อนข้างมีการปรับปรุงอย่างมากตลอดเวลา ระบบจึงถูก จำกัด ด้วย I / O และตอนนี้ฉันกำลังพิจารณาที่จะอัพเกรดอีกครั้งฉันแค่ต้องการทิศทางที่จะเริ่มปรับปรุง นี่คือภาพว่าสถานการณ์ดู 3 เดือนที่ผ่านมาได้อย่างไร: อย่างที่คุณเห็นอัปเดตบัญชีการปฏิบัติงานสำหรับการใช้งานดิสก์ส่วนใหญ่ นี่เป็นอีกภาพของการมองสถานการณ์ในหน้าต่าง 3 ชั่วโมงที่มีรายละเอียดมากขึ้น: อย่างที่คุณเห็นอัตราการเขียนสูงสุดคือประมาณ 20MB / s ซอฟต์แวร์ เซิร์ฟเวอร์กำลังใช้งาน Ubuntu 12.04 และ postgresql 9.2 ประเภทของการอัปเดตจะมีการอัปเดตขนาดเล็กตามปกติในแต่ละแถวที่ระบุโดย ID UPDATE cars SET price=some_price, updated_at = some_time_stamp WHERE id = some_idเช่น ฉันได้ลบและปรับดัชนีให้มากที่สุดเท่าที่ฉันคิดว่าเป็นไปได้และการกำหนดค่าเซิร์ฟเวอร์ (ทั้งเคอร์เนล linux และ postgres conf) ก็ปรับให้เหมาะสมเช่นกัน …

5
สุดยอดแพลตฟอร์มคลาวด์สำหรับ PostgreSQL [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัพเดตคำถามเพื่อให้เป็นไปตามหัวข้อสำหรับ Exchange Administrators Stack Exchange ปิดให้บริการใน6 ปีที่ผ่านมา ปัจจุบันในโครงการของเราเราใช้เซิร์ฟเวอร์เฉพาะสำหรับฐานข้อมูล PostgreSQL ของเรา ในทางทฤษฎีเราสามารถรันอะไรก็ได้บนแพลตฟอร์มคลาวด์บางแห่ง อย่างไรก็ตามการกำหนดค่า PostgreSQL นั้นเกี่ยวข้องกับการกำหนดค่าฮาร์ดแวร์อย่างเคร่งครัด สิ่งที่เรากำลังมองหาคือโซลูชันคลาวด์ที่มีการสนับสนุน PostgreSQL ดั้งเดิม นี่คือรายการของคุณสมบัติที่ต้องการ: การปรับการกำหนดค่าฐานข้อมูลอัตโนมัติขึ้นอยู่กับทรัพยากรที่เลือก ตั้งค่าการจำลองแบบออกจากกล่อง ดังนั้นตัวเลือกและตัวเลือกที่ดีที่สุดสำหรับบริการดังกล่าวคืออะไร?
20 postgresql  cloud 

2
ภาษาโพรซีเดอร์ PostgreSQL - ความแตกต่างระหว่าง PL / pgSQL และ SQL
ใครช่วยได้โปรดสรุปความแตกต่างระหว่าง: http://www.postgresql.org/docs/9.1/static/xfunc-sql.html และ http://www.postgresql.org/docs/9.1/static/plpgsql.html ? ประเด็นหลัก: ความแตกต่างทางแนวคิด ให้ครอบครัวที่มีปัญหาความสะดวกสบายในการใช้งาน ประเด็นทางการเมือง

3
จะรับการแจ้งเตือนไปยังสตรีมเอาต์พุตได้อย่างไร
ฉันมีข้อความดีบั๊กในฟังก์ชั่น ข้อความเหล่านั้นถูกยกขึ้นเช่น RAISE NOTICE 'Value of id : %', id; ฉันตั้งค่าไฟล์บันทึกด้วย \o messages.txt จากนั้นฉันทำสิ่งที่ฉันต้องทำ \i process.sql \oและเมื่อการดำเนินการถูกยกเลิก ปัญหาคือฉันไม่มีข้อความที่เพิ่มขึ้นโดยการแจ้งเตือนลงใน messages.txt ข้อความปรากฏบนหน้าจอ แต่ฉันต้องการให้เขียนเป็นข้อความในข้อความ.txt ฉันจะทำสิ่งนั้นได้อย่างไร ฉันพยายามใช้RAISE LOG...และข้อความเขียนในล็อกไฟล์ ... ไม่ใช่สิ่งที่ฉันต้องการ ฉันมีงานทำด้วย plsql -f /path/to/process.sql > messages.txt 2>&1 แต่ฉันอยากจะรู้ว่าฉันสามารถใช้ \ i และ \ o บนไคลเอนต์ plsql ที่มีข้อความเป็นไฟล์ที่ระบุใน \ o ลูกค้าของฉันใน cygwin คือ psql (PostgreSQL) 8.2.11 …
20 postgresql 


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