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

2
สร้างดัชนีหากไม่มีอยู่
ฉันกำลังทำงานกับฟังก์ชั่นที่อนุญาตให้ฉันเพิ่มดัชนีหากไม่มีอยู่ ฉันพบปัญหาที่ฉันไม่สามารถรับรายการดัชนีเพื่อเปรียบเทียบได้ ความคิดใด ๆ นี่เป็นปัญหาที่คล้ายคลึงกับการสร้างคอลัมน์ที่แก้ไขด้วยรหัสนี้: https://stackoverflow.com/a/12603892/368511

3
ฉันจะติดตั้ง pgcrypto ใน PostgreSQL 8.4 ได้อย่างไร
ฉันใช้อูบุนตูเซิร์ฟเวอร์ 10.10 และผมได้ติดตั้ง PostgreSQL 8.4 apt-get install postgresqlใช้ ฉันต้องการใช้sha1()ฟังก์ชั่นในตัวแต่ดูเหมือนว่าฉันจะต้องติดตั้งpgcryptoก่อน แต่ฉันไม่รู้วิธีติดตั้ง ไม่มีpgcryptoถ้าฉันพยายามติดตั้งโดยใช้apt-get install pgcryptoและฉันไม่พบไฟล์ใด ๆ ที่เริ่มต้นด้วยpgcryptoในระบบของฉัน (ฉันพยายามfind / -name "pgcrypto*") ฉันจะติดตั้ง pgcrypto เพื่อให้สามารถใช้digest('word-to-hash','sha1')ฟังก์ชั่นในการสืบค้นฐานข้อมูลได้อย่างไร อัปเดต:ฉันพยายามติดตั้ง pgcrypto ในเครื่อง Ubuntu อื่น หลังจากติดตั้งแพคเกจโดยใช้sudo apt-get install postgresql-contrib-8.4ฉันจะติดตั้งลงในฐานข้อมูล PostgreSQL ปัจจุบันได้อย่างไร

2
วิธีสร้างดัชนีเพื่อเพิ่มความเร็วการสืบค้น LIKE รวมในนิพจน์
ฉันอาจจะถามคำถามผิดในชื่อเรื่อง นี่คือข้อเท็จจริง: กลุ่มบริการลูกค้าของฉันร้องเรียนเกี่ยวกับเวลาตอบสนองที่ช้าเมื่อทำการค้นหาลูกค้าในอินเทอร์เฟซการจัดการของเว็บไซต์ Django ของเรา เรากำลังใช้ Postgres 8.4.6 ฉันเริ่มบันทึกการสืบค้นที่ช้าและค้นพบผู้ร้ายนี้: SELECT COUNT(*) FROM "auth_user" WHERE UPPER("auth_user"."email"::text) LIKE UPPER(E'%deyk%') การค้นหานี้ใช้เวลานานกว่า 32 วินาทีในการเรียกใช้ นี่คือแผนแบบสอบถามที่จัดทำโดยอธิบาย: QUERY PLAN Aggregate (cost=205171.71..205171.72 rows=1 width=0) -> Seq Scan on auth_user (cost=0.00..205166.46 rows=2096 width=0) Filter: (upper((email)::text) ~~ '%DEYK%'::text) เนื่องจากนี่เป็นแบบสอบถามที่สร้างขึ้นโดย Django ORM จาก Django QuerySet ที่สร้างโดยแอปพลิเคชัน Django Admin ฉันจึงไม่สามารถควบคุมแบบสอบถามได้ ดัชนีดูเหมือนว่าโซลูชันเชิงตรรกะ …

2
ข้อ จำกัด ของคอลัมน์ที่ไม่ซ้ำกันที่กำหนดเองมีผลบังคับใช้เฉพาะถ้าหนึ่งคอลัมน์มีค่าเฉพาะ
เป็นไปได้หรือไม่ที่จะมีข้อ จำกัด คอลัมน์เฉพาะที่กำหนดเองดังต่อไปนี้ สมมติว่าฉันมีสองคอลัมน์subsetและtypeทั้งสองสตริง (แม้ว่าชนิดข้อมูลอาจไม่สำคัญ) ถ้าtypeเป็น "จริง" ฉันก็อยากจะผสมผสานtypeและsubsetเป็นเอกลักษณ์ มิฉะนั้นจะไม่มีข้อ จำกัด ฉันใช้ PostgreSQL 8.4 บนเดเบียน

3
จะอัพเกรด PostgreSQL จากเวอร์ชั่น 8.4 เป็น 9.4 ได้อย่างไร
ฉันต้องการที่จะอัพเกรด PostgreSQL ของฉันจากเวอร์ชัน8.4ไป9.4 เอกสารไม่ได้เป็นอย่างชัดเจนกับผม ฉันจะสูญเสียฐานข้อมูลเก่าของฉันหรือไม่ถ้าฉันทำการอัพเกรด ฉันจะสำรองฐานข้อมูลเก่าของฉันได้อย่างไรหากฉันสูญเสียฐานข้อมูลหลังจากการอัปเกรด ฉันจะอัพเกรด psql ของฉันได้อย่างไร PostgreSQL ของฉันกำลังทำงานบนเซิร์ฟเวอร์CentOS 6.6

3
ใช้ PostgreSQL 8.4 จะแปลง bytea เป็นค่าข้อความใน postgres ได้อย่างไร?
ในแอปพลิเคชันของฉันฉันใส่ข้อมูลในฐานข้อมูลโดยใช้รหัส C เนื่องจากสตริงที่ฉันได้รับจากแหล่งที่ไม่น่าเชื่อถือฉันได้หนีพวกเขาโดยใช้PQescapeByteaConnไลบรารี libpq ซึ่งทำงานได้ดีอย่างสมบูรณ์เช่นผลลัพธ์ในรูปแบบ Octet String ดูตัวอย่างด้านล่าง สตริงอินพุต: \n\t\f\b\p\k\j\l\mestPrepared สตริงเอาท์พุท: \\012\\011\\014\\010pkjlmestPrepared เอาต์พุตสตริงถูกแทรกในฐานข้อมูล ตอนนี้ฉันดึงข้อมูลจากฐานข้อมูลในรหัส java โดยใช้ JDBC ฉันจะ unescape สตริงกลับไปเป็นค่าเดิมได้อย่างไร ฉันคิดถึงวิธีที่เป็นไปได้สองวิธี เปลี่ยนเคียวรีการดึงฐานข้อมูลและส่งฟิลด์นี้ไปยังฟังก์ชันการจัดการสตริงของ postgres เช่นซึ่งสามารถแปลงไบต์เป็นข้อความ ทำการถอดรหัสในโค้ด Java ฉันเข้าใจว่าวิธีที่ 1 จะมีประสิทธิภาพมากขึ้น ฉันได้ลองฟังก์ชั่นเกือบทั้งหมดที่ระบุไว้ที่นี่แต่ไม่มีอะไรทำงาน กรุณาช่วย!! ฉันใช้ postgres รุ่น 8.4 บนเครื่อง linux

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
การทำธุรกรรม PostgreSQL กระทำเป็นเวลาหลายชั่วโมง
ฉันพบปัญหาโดยที่ฉันมีการเชื่อมต่อสองรายการจากผู้ใช้ไปยังเซิร์ฟเวอร์ PostgreSQL ของฉันซึ่งทำงานมาแล้วประมาณ 4 ชั่วโมงและอยู่ในสถานะที่ยอมรับได้ค่อนข้างนาน (อย่างน้อย 1 ชั่วโมงที่ฉันดูอยู่) . การเชื่อมต่อเหล่านี้ปิดกั้นข้อความค้นหาอื่น ๆ ไม่ให้ทำงาน แต่ตัวเองไม่ได้ถูกบล็อก นี่คือการเชื่อมต่อทั้งสองที่เป็นปัญหา postgres=# select * from pg_stat_activity where usename = 'xxxxx'; datid | datname | procpid | usesysid | usename | current_query | waiting | xact_start | query_start | backend_start | client_addr | client_port -------+---------+---------+----------+---------+---------------+---------+-------------------------------+-------------------------------+-------------------------------+---------------+------------- 20394 | xxxxxx …

1
สิทธิพิเศษที่จำเป็นสำหรับการใช้งานฟังก์ชั่นทริกเกอร์ใน PostgreSQL 8.4 มีอะไรบ้าง?
สิทธิพิเศษที่จำเป็นสำหรับการใช้งานฟังก์ชั่นทริกเกอร์ใน PostgreSQL 8.4 มีอะไรบ้าง? ดูเหมือนว่าสิทธิพิเศษที่กำหนดให้กับบทบาทนั้นไม่สำคัญสำหรับการเรียกใช้ฟังก์ชันทริกเกอร์ ฉันคิดว่าฉันได้เห็นบางวันว่าสิทธิ์ที่จำเป็นในการเรียกใช้ฟังก์ชันทริกเกอร์เป็นสิทธิ์ดำเนินการ แต่สำหรับเจ้าของตารางไม่ใช่บทบาทจริงที่ดำเนินการแอ็คชั่นซึ่งยิงทริกเกอร์ที่เรียกฟังก์ชันทริกเกอร์ ฉันไม่พบส่วนเอกสารที่อธิบายจุดนั้นมีความช่วยเหลืออะไรบ้าง?
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.