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

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

9
sql ORDER BY หลายค่าตามลำดับที่ระบุ?
โอเคฉันมีตารางที่มีคีย์ที่จัดทำดัชนีและไม่มีฟิลด์ที่จัดทำดัชนี ฉันต้องการค้นหาระเบียนทั้งหมดที่มีค่าหนึ่งและส่งคืนแถว ฉันต้องการทราบว่าฉันสามารถสั่งซื้อหลายค่าได้หรือไม่ ตัวอย่าง: id x_field -- ----- 123 a 124 a 125 a 126 b 127 f 128 b 129 a 130 x 131 x 132 b 133 p 134 p 135 i pseudo: ต้องการให้ผลลัพธ์เป็นแบบนี้ where ORDER BY x_field = 'f', 'p', 'i', 'a' SELECT * FROM table WHERE …

5
แบบสอบถาม PostgreSQL เพื่อส่งคืนผลลัพธ์เป็นรายการที่คั่นด้วยจุลภาค
สมมติว่าคุณมีSELECT id from tableข้อความค้นหา (กรณีจริงคือแบบสอบถามที่ซับซ้อน) ที่ส่งคืนผลลัพธ์หลายรายการ ปัญหาคือจะรับidผลตอบแทนทั้งหมดในแถวเดียวโดยคั่นด้วยจุลภาคได้อย่างไร
99 sql  postgresql 

10
postgresql - sql - จำนวนค่า "จริง"
myCol ------ true true true false false null ในตารางด้านบนถ้าฉันทำ: select count(*), count(myCol); ฉันเข้าใจ 6, 5 ฉันเข้าใจ5ว่ามันไม่นับรายการว่าง ฉันจะนับจำนวนค่าจริงได้อย่างไร (3 ในตัวอย่าง) (นี่เป็นการทำให้เข้าใจง่ายและฉันใช้นิพจน์ที่ซับซ้อนกว่านี้มากในฟังก์ชัน count) แก้ไขสรุป: ฉันต้องการรวมจำนวนธรรมดา (*) ในแบบสอบถามดังนั้นจึงไม่สามารถใช้คำสั่ง where ได้
98 sql  postgresql 

3
การเพิ่ม 'serial' ในคอลัมน์ที่มีอยู่ใน Postgres
ฉันมีตารางขนาดเล็ก (~ 30 แถว) ในฐานข้อมูล Postgres 9.0 ของฉันพร้อมฟิลด์ ID จำนวนเต็ม (คีย์หลัก) ซึ่งปัจจุบันมีจำนวนเต็มตามลำดับที่ไม่ซ้ำกันเริ่มต้นที่ 1 แต่ไม่ได้สร้างโดยใช้คีย์เวิร์ด 'อนุกรม' ฉันจะแก้ไขตารางนี้ได้อย่างไรที่นับจากนี้ไปแทรกในตารางนี้จะทำให้ฟิลด์นี้ทำงานราวกับว่ามันถูกสร้างขึ้นโดยมี 'อนุกรม' เป็นประเภท
98 postgresql 

2
'$$' ใช้สำหรับอะไรใน PL / pgSQL
เป็นใหม่สำหรับ PL / pgSQL ความหมายของเครื่องหมายดอลลาร์คู่ในฟังก์ชันนี้คืออะไร : CREATE OR REPLACE FUNCTION check_phone_number(text) RETURNS boolean AS $$ BEGIN IF NOT $1 ~ e'^\\+\\d{3}\\ \\d{3} \\d{3} \\d{3}$' THEN RAISE EXCEPTION 'Wrong formated string "%". Expected format is +999 999'; END IF; RETURN true; END; $$ LANGUAGE plpgsql STRICT IMMUTABLE; ฉันคาดเดาว่าในRETURNS boolean AS $$, …

5
มีการหมดเวลาสำหรับการเชื่อมต่อ PostgreSQL ที่ไม่ได้ใช้งานหรือไม่
1 S postgres 5038 876 0 80 0 - 11962 sk_wai 09:57 ? 00:00:00 postgres: postgres my_app ::1(45035) idle 1 S postgres 9796 876 0 80 0 - 11964 sk_wai 11:01 ? 00:00:00 postgres: postgres my_app ::1(43084) idle ฉันเห็นพวกเขามากมาย เรากำลังพยายามแก้ไขการรั่วไหลของการเชื่อมต่อ แต่ในขณะเดียวกันเราต้องการกำหนดระยะหมดเวลาสำหรับการเชื่อมต่อที่ไม่ได้ใช้งานเหล่านี้โดยอาจสูงสุด 5 นาที

7
การเลือกแถวสุ่มอย่างรวดเร็วใน Postgres
ฉันมีตารางใน postgres ที่มีสองสามล้านแถว ฉันได้ตรวจสอบทางอินเทอร์เน็ตและพบสิ่งต่อไปนี้ SELECT myid FROM mytable ORDER BY RANDOM() LIMIT 1; มันใช้งานได้ แต่ช้ามาก ... มีวิธีอื่นในการสร้างแบบสอบถามหรือวิธีโดยตรงในการเลือกแถวสุ่มโดยไม่ต้องอ่านตารางทั้งหมด? โดยวิธีการที่ 'myid' เป็นจำนวนเต็ม แต่สามารถเป็นฟิลด์ว่างได้

1
ลบ 1 วันจากวันที่ประทับเวลา
ฉันใช้ Datagrip สำหรับ Postgresql (ex: 2016-11-01 00:00:00)ฉันมีตารางที่มีข้อมูลวันที่ในรูปแบบเวลา ฉันต้องการที่จะสามารถ: ใช้ตัวดำเนินการทางคณิตศาสตร์เพื่อลบ 1 วัน กรองตามกรอบเวลาของวันนี้ -130 วัน แสดงโดยไม่มีส่วน hh / mm / ss ของตราประทับ (2016-10-31) แบบสอบถามเริ่มต้นปัจจุบัน: select org_id, count(accounts) as count, ((date_at) - 1) as dateat from sourcetable where date_at <= now() - 130 group by org_id, dateat ((date_at)-1)ประโยคในบรรทัด 1 ผลลัพธ์ใน: [42883] ข้อผิดพลาด: …

4
วิธีค้นหาขนาดของอาร์เรย์ใน postgresql
มีวิธีใดในการค้นหาขนาดของอาร์เรย์หรือไม่? ตัวอย่างเช่น, CREATE TABLE example (id integer[]) ; INSERT INTO exam VALUES ( '{}'); INSERT INTO exam VALUES ( '{5,6,7}'); จากนี้มีความเป็นไปได้หรือไม่ที่จะได้ผลลัพธ์ดังต่อไปนี้ size 0 3
98 sql  arrays  postgresql  size 

3
Postgres ดัมพ์เฉพาะบางส่วนของตารางสำหรับ dev snapshot
ในการผลิตฐานข้อมูลของเรามีขนาดไม่กี่ร้อยกิกะไบต์ สำหรับการพัฒนาและการทดสอบเราจำเป็นต้องสร้างสแนปชอตของฐานข้อมูลนี้ที่มีฟังก์ชันเทียบเท่ากัน แต่มีขนาดเพียง 10 หรือ 20 กิ๊กเท่านั้น ความท้าทายคือข้อมูลสำหรับหน่วยงานธุรกิจของเรากระจัดกระจายไปตามตารางต่างๆ เราต้องการสร้างสแนปชอตที่กรองบางประเภทเพื่อให้มีเพียงเอนทิตีบางส่วนเท่านั้นที่รวมอยู่ในดัมพ์ ด้วยวิธีนี้เราจะได้รับสแนปช็อตใหม่ทุกเดือนหรือมากกว่านั้นสำหรับการพัฒนาและการทดสอบ ตัวอย่างเช่นสมมติว่าเรามีเอนทิตีที่มีความสัมพันธ์แบบกลุ่มต่อกลุ่มเหล่านี้: บริษัท มีแผนก N แผนกมีพนักงาน N พนักงานมีประวัติผู้เข้าร่วม N อาจมี บริษัท 1,000 แห่งแผนก 2,500 คนพนักงาน 175,000 คนและประวัติการเข้าร่วมงานหลายสิบล้านคน เราต้องการวิธีที่จำลองแบบเพื่อดึงพูด, 100 บริษัท แรกและทุกหน่วยงานที่เป็นส่วนประกอบพนักงานและการเข้าร่วมของมัน ปัจจุบันเราใช้ pg_dump สำหรับสคีมาจากนั้นเรียกใช้ pg_dump ด้วย --disable-trigger และ --data-only เพื่อดึงข้อมูลทั้งหมดออกจากตารางขนาดเล็ก เราไม่ต้องการที่จะต้องเขียนสคริปต์ที่กำหนดเองเพื่อดึงข้อมูลบางส่วนออกมาเนื่องจากเรามีวงจรการพัฒนาที่รวดเร็วและกังวลว่าสคริปต์ที่กำหนดเองจะเปราะบางและมีแนวโน้มที่จะล้าสมัย เราจะทำเช่นนี้ได้อย่างไร? มีเครื่องมือของบุคคลที่สามที่สามารถช่วยดึงโลจิคัลพาร์ติชันออกจากฐานข้อมูลได้หรือไม่? เครื่องมือเหล่านี้เรียกว่าอะไร? คำแนะนำทั่วไปใด ๆ ที่ชื่นชม!
97 postgresql 

10
การติดตั้ง Postgis: ไม่มีประเภท "geometry"
ฉันกำลังพยายามสร้างตารางด้วย Postgis ฉันทำตามหน้านี้ แต่เมื่อฉันนำเข้าไฟล์ postgis.sql ฉันได้รับข้อผิดพลาดมากมาย: ERROR: type "geometry" does not exist มีใครรู้บ้างว่าฉันจะแก้ไขได้อย่างไร

7
แปลงไฟล์ดัมพ์ SQLITE SQL เป็น POSTGRESQL
ฉันได้ทำการพัฒนาโดยใช้ฐานข้อมูล SQLITE พร้อมการผลิตใน POSTGRESQL ฉันเพิ่งอัปเดตฐานข้อมูลในเครื่องของฉันด้วยข้อมูลจำนวนมากและจำเป็นต้องโอนตารางเฉพาะไปยังฐานข้อมูลการผลิต จากการรันsqlite database .dump > /the/path/to/sqlite-dumpfile.sqlSQLITE จะแสดงผลลัพธ์ตารางดัมพ์ในรูปแบบต่อไปนี้: BEGIN TRANSACTION; CREATE TABLE "courses_school" ("id" integer PRIMARY KEY, "department_count" integer NOT NULL DEFAULT 0, "the_id" integer UNIQUE, "school_name" varchar(150), "slug" varchar(50)); INSERT INTO "courses_school" VALUES(1,168,213,'TEST Name A',NULL); INSERT INTO "courses_school" VALUES(2,0,656,'TEST Name B',NULL); .... COMMIT; ฉันจะแปลงข้างต้นเป็นไฟล์ดัมพ์ที่เข้ากันได้กับ POSTGRESQL ที่ฉันสามารถนำเข้าสู่เซิร์ฟเวอร์การผลิตของฉันได้อย่างไร

7
Query ให้สิทธิ์สำหรับตารางใน postgres
ฉันจะสืบค้น GRANTS ทั้งหมดที่มอบให้กับวัตถุใน postgres ได้อย่างไร ตัวอย่างเช่นฉันมีตาราง "mytable": GRANT SELECT, INSERT ON mytable TO user1 GRANT UPDATE ON mytable TO user2 ฉันต้องการบางสิ่งที่ให้ฉัน: user1: SELECT, INSERT user2: UPDATE
97 sql  postgresql  grant 

4
อาร์เรย์รวม Postgresql
ฉันมีโต๊ะสองตัว Student -------- Id Name 1 John 2 David 3 Will Grade --------- Student_id Mark 1 A 2 B 2 B+ 3 C 3 A เป็นไปได้หรือไม่ที่จะสร้าง Postgresql SELECT เพื่อให้ได้ผลลัพธ์ดังนี้: Name Array of marks ----------------------- 'John', {'A'} 'David', {'B','B+'} 'Will', {'C','A'} แต่ไม่เหมือนข้างล่าง Name Mark ---------------- 'John', 'A' 'David', 'B' 'David', 'B+' …
97 sql  arrays  postgresql 

1
PostgreSQL: การรีเซ็ตรหัสผ่านของ PostgreSQL บน Ubuntu [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ขณะนี้ยังไม่ยอมรับคำตอบ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Stack Overflow ปิดให้บริการใน7 ปีที่ผ่านมา ปรับปรุงคำถามนี้ ใน Ubuntu ฉันติดตั้งฐานข้อมูล PostgreSQL และสร้าง superuser สำหรับเซิร์ฟเวอร์ หากฉันลืมรหัสผ่านของ postgresql superuser ฉันจะรีเซ็ต (รหัสผ่าน) สำหรับผู้ใช้นั้นได้อย่างไร ฉันลองถอนการติดตั้งแล้วติดตั้งอีกครั้ง แต่ superuser ที่สร้างไว้ก่อนหน้านี้จะยังคงอยู่
97 postgresql  unix 

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