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

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

1
PostgreSQL 9.5 จะไม่เริ่มทำงานหลังจากที่ Windows 10 fall update
ฉันได้ติดตั้ง Windows 10 Fall update (1709) และตอนนี้เซิร์ฟเวอร์ PostgreSQL 9.5 ของฉันจะไม่เริ่มทำงาน ทำงานเมื่อวานนี้ก่อนการอัปเดตและฉันไม่ได้ทำการเปลี่ยนแปลงใด ๆ กับการกำหนดค่า ฉันได้ตรวจสอบตัวแสดงเหตุการณ์แล้วและพบข้อความแสดงข้อผิดพลาด: 2017-10-19 11:32:32 CEST LOG: invalid value for parameter "lc_monetary": "Czech_Czech Republic.1250" 2017-10-19 11:32:32 CEST LOG: invalid value for parameter "lc_numeric": "Czech_Czech Republic.1250" 2017-10-19 11:32:32 CEST LOG: invalid value for parameter "lc_time": "Czech_Czech Republic.1250" 2017-10-19 11:32:32 CEST …

7
การจัดกลุ่มหรือหน้าต่าง
ฉันมีสถานการณ์ที่ฉันคิดว่าสามารถแก้ไขได้โดยใช้ฟังก์ชั่นหน้าต่าง แต่ฉันไม่แน่ใจ ลองนึกภาพตารางต่อไปนี้ CREATE TABLE tmp ( date timestamp, id_type integer ) ; INSERT INTO tmp ( date, id_type ) VALUES ( '2017-01-10 07:19:21.0', 3 ), ( '2017-01-10 07:19:22.0', 3 ), ( '2017-01-10 07:19:23.1', 3 ), ( '2017-01-10 07:19:24.1', 3 ), ( '2017-01-10 07:19:25.0', 3 ), ( '2017-01-10 07:19:26.0', 5 …

1
รับการจับคู่บางส่วนจากคอลัมน์ TSVECTOR ที่จัดทำดัชนีโดย GIN
ฉันต้องการได้รับผลลัพธ์จากแบบสอบถามนี้: SELECT * FROM ( SELECT id, subject FROM mailboxes WHERE tsv @@ plainto_tsquery('avail') ) AS t1 ORDER by id DESC; งานนี้และแถวกลับมาพร้อมกับมีtsv Availableแต่ถ้าฉันใช้avai(ดร็อปlable) มันไม่สามารถหาอะไรได้เลย คำค้นหาทั้งหมดต้องอยู่ในพจนานุกรมหรือไม่ เราไม่สามารถค้นหาจดหมายเช่นนั้นได้หรือ ฉันมีฐานข้อมูลที่มีเนื้อหาอีเมล (เนื้อหา) และฉันต้องการทำให้มันเร็วขึ้นเรื่อย ๆ ทุกวัน ขณะนี้ฉันกำลังใช้ ... WHERE content ~* 'letters`

1
การติดตั้ง PgAdmin 4 บน Debian / Ubuntu [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับผู้ดูแลฐานข้อมูล Exchange Exchange ปิดให้บริการใน3 ปีที่ผ่านมา PgAdmin 4 1.0 เพิ่งเปิดตัว แต่ในหน้าดาวน์โหลดสำหรับ Linux มีเพียงลิงก์ไปยังตัวติดตั้งยำ ใครรู้ว่ามีแผนจะสร้างตัวติดตั้ง deb หรือไม่? หรือถ้ามีอยู่แล้ว?

1
ฉันจะอัพเกรดฐานข้อมูล postgres AWS RDS เวอร์ชันหลักได้อย่างไร
เช้านี้ฉันมีส่วนร่วมในการอัพเกรดฐานข้อมูล PostgreSQL บน AWS RDS เราต้องการย้ายจากรุ่น 9.3.3 ไปเป็นรุ่น 9.4.4 เราได้ "ทดสอบ" การอัปเกรดบนฐานข้อมูลการแสดงละคร แต่ฐานข้อมูลการแสดงละครมีขนาดเล็กกว่ามากและไม่ใช้ Multi-AZ ปรากฎว่าการทดสอบนี้ค่อนข้างไม่เพียงพอ ฐานข้อมูลการผลิตของเราใช้ Multi-AZ เราได้ทำการอัปเกรดรุ่นรองในอดีตและในกรณีเหล่านั้น RDS จะอัปเกรดสแตนด์บายก่อนแล้วจึงเลื่อนระดับเป็นหลัก ดังนั้นการหยุดทำงานเพียงครั้งเดียวที่เกิดขึ้นคือ ~ 60 วินาทีในระหว่างการล้มเหลว เราสันนิษฐานว่าสิ่งเดียวกันจะเกิดขึ้นสำหรับการอัปเกรดเวอร์ชันหลัก แต่โอ้ว่าเราผิดอย่างไร รายละเอียดบางอย่างเกี่ยวกับการตั้งค่าของเรา: db.m3.large IOPS ที่จัดสรร (SSD) ที่เก็บข้อมูล 300 GB ซึ่งมีการใช้งาน 139 GB เรามีการอัปเกรด RDS OS ที่โดดเด่นเราต้องการแบทช์ด้วยการอัพเกรดนี้เพื่อลดเวลาหยุดทำงาน นี่คือเหตุการณ์ RDS ที่ถูกบันทึกไว้ในขณะที่เราทำการอัพเกรด: ซีพียูฐานข้อมูลถูกขยายให้ใหญ่สุดระหว่างประมาณ 08:44 ถึง 10:27 เวลานี้ดูเหมือนว่าจะถูกครอบครองโดย RDS …

1
รับเปอร์เซ็นไทล์ที่ 10 และ 90 จากลูกค้า
ฉันมีตารางที่มีลูกค้าและคะแนน (ขึ้นอยู่กับปัจจัยต่าง ๆ ที่ไม่เกี่ยวข้องในกรณีนี้ลูกค้าสามารถมีหลายคะแนน) ซึ่งมีลักษณะดังนี้: customer_id | score | score_giver_id ==================================== 1 | 100 | 1 1 | 102 | 1 1 | 101 | 1 1 | 140 | 1 2 | 131 | 3 1 | 44 | 1 3 | 223 | 1 3 | 1 | …

1
ฉันจะดีบัก Idle Query ได้อย่างไร
ฉันมีชุดแบบสอบถามที่ฉันทำงานทุกวันในฐานข้อมูลของฉัน อย่างไรก็ตามดูเหมือนว่าจะติดอยู่ในสถานะไม่ได้ใช้งานและฉันมีปัญหาในการดีบั๊กสิ่งที่เกิดขึ้น แบบสอบถามคือการรวมตัวกันบนโต๊ะที่ถูกแทรกพร้อมกันซึ่งฉันเดาว่าเกี่ยวข้องกับปัญหาอย่างใด (การรวมเป็นข้อมูลวันก่อนหน้าดังนั้นการแทรกไม่ควรส่งผลต่อผลลัพธ์) เบาะแส ฉันใช้มันในสคริปต์หลามโดยใช้ sqlalchemy อย่างไรก็ตามฉันได้ตั้งค่าระดับธุรกรรมเป็นแบบอัตโนมัติดังนั้นฉันไม่คิดว่าสิ่งต่าง ๆ จะถูกห่อในการทำธุรกรรม ในทางกลับกันฉันไม่เห็นข้อความค้นหาหยุดทำงานเมื่อฉันรันด้วยตนเองในเทอร์มินัล sql โดยการสอบถามแบบสอบถามครั้งแรกที่เข้ามาในฐานข้อมูลเป็นpg_stat_activity state='active'หลังจาก 15 วินาทีอาจจะมีการเปลี่ยนแปลงของรัฐที่จะ 'ไม่ได้ใช้งานและนอกจากนี้มีการตั้งค่าxact_start NULLธงรอไม่เคยถูกตั้งค่าเป็นจริง ก่อนที่ผมจะคิดออก autocommit ระดับธุรกรรมสำหรับ sqlalchemy มันแทนจะแขวนในรัฐมากกว่า'idle in transaction' 'idle'และมันอาจจะแฮงค์น้อยลงเล็กน้อยนับตั้งแต่ทำการเปลี่ยนแปลง? ฉันรู้สึกว่าฉันไม่พร้อมที่จะขุดลึกลงไปกว่าที่ฉันมี ข้อเสนอแนะใด ๆ แม้จะอธิบายเพิ่มเติมเกี่ยวกับรัฐต่างๆและผู้ฝึกงานระดับสูงที่เกี่ยวข้องโดยไม่ต้องตอบคำถามแน่นอนจะได้รับการชื่นชมอย่างมาก

1
เหตุใดผู้ใช้ใหม่จึงสามารถสร้างตารางใน PostgreSQL ได้
ฉันติดตามสองบทเรียนเพื่อสร้าง DB ด้วย: ลิงค์ผู้ใช้ที่มีสิทธิ์อย่างสมบูรณ์ ลิงก์ผู้ใช้แบบอ่านอย่างเดียว จากนั้นฉันได้รับคำแนะนำจากบทสอนของ CJ Estel ที่ระบุว่า "คุณอาจได้รับมรดกความสามารถในการสร้างตารางแม้ว่าเราจะไม่ได้มอบให้กับผู้ใช้ใหม่ของเราอย่างชัดเจน" ผู้ใช้แบบอ่านอย่างเดียวสามารถสร้างและเป็นเจ้าของตารางได้! CJ Estel ได้ชี้ให้เห็นถึงต้นตอของปัญหาเป็นอย่างดีนั่นคือฐานข้อมูลแม่แบบ แต่ความสามารถในการสร้างตารางทำลายบทเรียนมากที่สุดที่คุณได้รับจาก googling "อ่านเท่านั้น postgres ผู้ใช้" รวมถึงหนึ่งโฮสต์บน postgresql.org ผู้ใช้ของคุณมีสิทธิ์มากกว่าแบบอ่านอย่างเดียว! เหตุใดผู้ใช้ใหม่จึงมีความสามารถนี้ หลังจากยกเลิกสิทธิ์นี้แล้วฐานข้อมูลเป็นแบบอ่านอย่างเดียวสำหรับผู้ใช้รายนั้นหรือไม่

1
ให้สิทธิ์การเข้าถึงตารางของฐานข้อมูลทั้งหมด
ฉันเพิ่งอยากจะแบ่งปันสิทธิการเข้าถึงปกติกับผู้ใช้คนหนึ่งของเซิร์ฟเวอร์และฉันตระหนักว่าง่ายCREATE USERและGRANT ALL ON DATABASEคำสั่งไม่ให้เขาทำงานที่เรียบง่ายSELECTกับข้อมูลที่ ฉันต้องการให้สิทธิ์ในตารางทั้งหมดจากฐานข้อมูลที่กำหนดไปยังผู้ใช้ที่ระบุ แต่ฉันไม่แน่ใจว่ามันเป็นความคิดที่ดีที่สุดที่จะอนุญาตให้เขาเข้าถึงสคีมาทั้งหมดหรือไม่publicเพราะฉันไม่รู้ว่าจะให้สิทธิ์บางอย่างหรือไม่ การเพิ่ม มีวิธีอื่น ๆ ?

2
โพสต์ข้อผิดพลาดแพ็คเก็ตเริ่มต้นที่ไม่สมบูรณ์
ฉันกำลังพยายามติดตั้ง Postgres 9.3 บน Ubuntu 14.04 และฉันได้รับข้อผิดพลาดที่น่ารำคาญเมื่อเริ่มต้น นี่คือสิ่งที่ฉันเห็น: $ sudo service postgresql restart * Restarting PostgreSQL 9.3 database server * Error: could not exec /usr/lib/postgresql/9.3/bin/pg_ctl /usr/lib/postgresql/9.3/bin/pg_ctl start -D /var/lib/postgresql/9.3/main -l /var/log/postgresql/postgresql-9.3-main.log -s -o -c config_file="/etc/postgresql/9.3/main/postgresql.conf" : [fail] ดังนั้นฉันจะตรวจสอบไฟล์บันทึกด้วยผลลัพธ์นี้: 2015-01-05 21:50:05 EST LOG: database system was shut down at 2015-01-05 21:50:03 …

1
อัปเดตคอลัมน์ทั้งหมดจากตารางอื่น
ฉันต้องการอัปเดตตารางจากอีกอันหนึ่งและฉันต้องอัปเดตคอลัมน์ทั้งหมด นอกจากการแสดงทุกคอลัมน์ในส่วนSETคำสั่งมีวิธีอัปเดตทั้งหมดในครั้งเดียวหรือไม่ แบบนี้: update tableA set * = tableB.* from tableB where tableA.id = tableB.id ฉันลอง psql แล้วมันใช้งานไม่ได้ ฉันต้องแสดงรายการทุกคอลัมน์ดังนี้ update tableA set c1 = tableB.c1, c2 = tableB.c2, ... from tableB where tableA.id = tableB.id tableBcreate .. like tableAถูกสร้างขึ้นใช้ ดังนั้นพวกเขาจึงเหมือนกันโดยทั่วไป และเหตุผลที่ฉันทำก็คือว่าผมต้องโหลดข้อมูล CSV เพื่อตาราง temp tableBแล้ว update อยู่บนพื้นฐานของข้อมูลใหม่ในtableA จำเป็นต้องถูกล็อคให้น้อยที่สุดและต้องรักษาความสมบูรณ์ ฉันไม่แน่ใจว่า 'ลบแล้วแทรก' …

3
สามารถแยกความแตกต่างจากการรวมเข้ากับอะไรก็ได้หรือไม่?
เป็นวิธีการรวมIS DISTINCT FROMกับpostgres ANYหรือวิธีอื่น ๆ ที่เป็นระเบียบเพื่อให้ได้ผลลัพธ์เดียวกันหรือไม่? select count(*) from (select 'A' foo union all select 'Z' union all select null) z where foo <> any(array[null, 'A']); count ------- 1 (1 row) select count(*) from (select 'A' foo union all select 'Z' union all select null) z where foo is distinct …

7
ทำไม PostgreSQL 9.3 จะไม่เริ่มทำงานบน Ubuntu
ฉันได้ติดตั้ง PostgreSQL 9.3 สำเร็จแล้วจากที่เก็บ APT บน Ubuntu 12.04 และ 13.04 ที่รันบน VM 2 อย่างไรก็ตามฉันไม่สามารถติดตั้งบนเครื่องโฮสต์ที่ใช้ Ubuntu 12.04 ได้ ดูเหมือนว่าการติดตั้ง (ในครั้งนี้) จะใช้ได้ แต่อาจมีข้อผิดพลาดที่ฉันไม่เข้าใจ: * No PostgreSQL clusters exist; see "man pg_createcluster" Setting up postgresql-9.3 (9.3.0-2.pgdg12.4+1) ... Creating new cluster 9.3/main ... config /etc/postgresql/9.3/main data /var/lib/postgresql/9.3/main locale en_US.UTF-8 port 5432 update-alternatives: using /usr/share/postgresql/9.3/man/man1/postmaster.1.gz …

2
PostgreSQL แตกต่างระหว่าง VACUUM FULL และ CLUSTER
ฉันมีตารางที่มีข้อมูลขนาด 200 GB และมีขนาด 180 GB โดยดัชนี 6 รายการ มันบวม 30% ดังนั้นฉันต้องการเรียกคืนพื้นที่ที่ไม่ต้องการครอบครอง มันเป็นคลัสเตอร์ในjob_id_idดัชนี x ดังนั้นเพื่อเรียกคืนพื้นที่ฉันต้องใช้clusterคำสั่งหรือvacuum fullคำสั่ง? ความแตกต่างระหว่างสองคำสั่งนี้คืออะไร? คือvacuum fullการสั่งซื้อตามคอลัมน์บางเช่นเดียวกับclusterคำสั่ง? ดัชนีถูกสร้างขึ้นใหม่ทั้งในคำสั่งหรือไม่? ในกรณีของฉันอันไหนจะเร็วกว่ากัน? เวอร์ชันของฐานข้อมูล PostgreSQL คือ 9.1

4
ไม่สามารถปิด postmaster เก่าเมื่ออัปเกรดเป็น Postgres 9.2
ฉันกำลังอัปเกรดเป็น Postgres 9.2.2 (จาก 9.1.4) เมื่อฉันพยายามอัพเกรด DBs โดยใช้: pg_upgrade -b /usr/local/Cellar/postgresql/9.1.4/bin -B /usr/local/Cellar/postgresql/9.2.2/bin -d /usr/local/var/postgres91 -D /usr/local/var/postgres ฉันได้รับข้อความแสดงข้อผิดพลาดต่อไปนี้: Performing Consistency Checks ----------------------------- Checking current, bin, and data directories ok There seems to be a postmaster servicing the old cluster. Please shutdown that postmaster and try again. Failure, exiting ฉันพยายามหยุดเซิร์ฟเวอร์ แต่ไม่สามารถให้คำสั่งอัปเกรดทำงานได้ …

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