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

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

5
PostgreSQL uncest () พร้อมหมายเลของค์ประกอบ
เมื่อฉันมีคอลัมน์ที่มีค่าที่แยกจากกันฉันสามารถใช้unnest()ฟังก์ชัน: myTable id | elements ---+------------ 1 |ab,cd,efg,hi 2 |jk,lm,no,pq 3 |rstuv,wxyz select id, unnest(string_to_array(elements, ',')) AS elem from myTable id | elem ---+----- 1 | ab 1 | cd 1 | efg 1 | hi 2 | jk ... ฉันจะใส่หมายเลของค์ประกอบได้อย่างไร ได้แก่ : id | elem | nr ---+------+--- 1 …

4
จะตรวจสอบได้อย่างไรว่ามีผู้ใช้ postgres อยู่หรือไม่?
createuserอนุญาตให้สร้างผู้ใช้ (ROLE) ใน PostgreSQL มีวิธีง่ายๆในการตรวจสอบว่ามีผู้ใช้ (ชื่อ) อยู่แล้วหรือไม่? มิฉะนั้น createuser จะส่งกลับพร้อมข้อผิดพลาด: createuser: creation of new role failed: ERROR: role "USR_NAME" already exists UPDATE: ควรใช้วิธีแก้ปัญหาจากเชลล์เพื่อให้ง่ายต่อการทำงานอัตโนมัติภายในสคริปต์

5
ข้อผิดพลาด: การอนุญาตถูกปฏิเสธสำหรับความสัมพันธ์ tablename บน Postgres ขณะพยายาม SELECT เป็นผู้ใช้แบบอ่านอย่างเดียว
GRANT SELECT ON ALL TABLES IN SCHEMA public TO readonly; ผู้ใช้แบบอ่านอย่างเดียวสามารถเชื่อมต่อดูตาราง แต่เมื่อพยายามทำการเลือกง่ายๆจะได้รับ: ERROR: permission denied for relation mytable SQL state: 42501 สิ่งนี้เกิดขึ้นกับ PostgreSQL 9.1 ฉันทำอะไรผิด?
89 postgresql 

10
การวิเคราะห์การใช้ดัชนี PostgreSQL
มีเครื่องมือหรือวิธีการวิเคราะห์ Postgres หรือไม่และควรสร้างดัชนีที่ขาดหายไปและควรลบดัชนีใดที่ไม่ได้ใช้ออกไป ฉันมีประสบการณ์เล็กน้อยในการทำเช่นนี้กับเครื่องมือ "profiler" สำหรับ SQLServer แต่ฉันไม่ทราบว่ามีเครื่องมือที่คล้ายกันที่มาพร้อมกับ Postgres

3
คุณจะให้ผู้ใช้ที่ใช้งานอยู่เชื่อมต่อกับฐานข้อมูล postgreSQL ผ่าน SQL ได้อย่างไร
คุณจะให้ผู้ใช้ที่ใช้งานอยู่เชื่อมต่อกับฐานข้อมูล postgreSQL ผ่าน SQL ได้อย่างไร อาจเป็นรหัสผู้ใช้หรือจำนวนผู้ใช้

1
แสดงผลการเลือกในแนวตั้งใน psql เช่นเดียวกับ \ G ของ MySQL
ใน MySQL คุณสามารถยุติการselectสืบค้นด้วย\G(ซึ่งตรงข้ามกับ\g) เพื่อแสดงผลลัพธ์ในแนวตั้ง: select * from foo \G *************** id: 1 bar: Hello *************** id: 2 bar: World เราจะทำสิ่งเดียวกันกับ PostgreSQL โดยใช้ psql ได้อย่างไร?
89 postgresql  psql 

8
เซิร์ฟเวอร์ PostgreSQL จะไม่หยุดทำงาน
มีปัญหาเล็กน้อยกับ PostgreSQL บน Mac OS X 10.8.4 ฉันบังเอิญทำbrew rm postgresql --forceในขณะที่เซิร์ฟเวอร์ postgres กำลังทำงาน เมื่อฉันติดตั้งโดยใช้brew install postgresqlและรันpg_ctl -D /usr/local/var/postgres startฉันจะได้รับ: pg_ctl: another server might be running; trying to start server anyway server starting FATAL: lock file "postmaster.pid" already exists HINT: Is another postmaster (PID 752) running in data directory "/usr/local/var/postgres"? เมื่อฉันเรียกใช้ …

14
ไม่สามารถติดตั้ง PostgreSQL: เกิดข้อผิดพลาดในการเรียกใช้โปรแกรมติดตั้งรันไทม์ Microsoft VC ++ บน Windows XP
ฉันดาวน์โหลดโปรแกรมติดตั้ง postgresql-9.0.1-1-windows.exe จากเว็บไซต์อย่างเป็นทางการเรียกใช้แล้วพบข้อผิดพลาด: เกิดข้อผิดพลาดในการเรียกใช้โปรแกรมติดตั้งรันไทม์ Microsoft VC ++ สาเหตุของข้อความแสดงข้อผิดพลาดนี้คืออะไร? แพลตฟอร์ม: Windows XP SP3, Dell Inspiron 1501 โปรเซสเซอร์: AMD Sempron 3500+

2
จัดเก็บผลลัพธ์ของแบบสอบถามที่เลือกไว้ในอาร์เรย์เดียวใน postgres
รหัสของฉันคือ: SELECT column_name FROM information.SCHEMA.columns WHERE table_name = 'aean' aeanก็จะส่งกลับชื่อคอลัมน์ของตาราง ตอนนี้ฉันได้ประกาศอาร์เรย์แล้ว: DECLARE colnames text[] ฉันจะจัดเก็บเอาต์พุตของ Select ในอาร์เรย์ colnames ได้อย่างไร จำเป็นต้องเริ่มต้นชื่อ colnames หรือไม่?

2
PostgreSQL: ชื่อข้อ จำกัด เริ่มต้น
เมื่อสร้างตารางใน PostgreSQL ชื่อข้อ จำกัด เริ่มต้นจะถูกกำหนดหากไม่ได้ระบุ: CREATE TABLE example ( a integer, b integer, UNIQUE (a, b) ); แต่การใช้ALTER TABLEเพื่อเพิ่มข้อ จำกัด ดูเหมือนว่าชื่อจำเป็น: ALTER TABLE example ADD CONSTRAINT my_explicit_constraint_name UNIQUE (a, b); สิ่งนี้ทำให้การตั้งชื่อบางอย่างไม่สอดคล้องกันในโครงการที่ฉันทำและถามคำถามต่อไปนี้: มีวิธีง่ายๆในการเพิ่มข้อ จำกัด ให้กับตารางที่ยังหลงเหลืออยู่ด้วยชื่อที่จะได้รับหากเพิ่มระหว่างการสร้างตารางหรือไม่? ถ้าไม่ควรหลีกเลี่ยงชื่อเริ่มต้นทั้งหมดเพื่อป้องกันความไม่สอดคล้องกัน?

8
กำจัดค่าอาร์เรย์ที่ซ้ำกันใน postgres
ฉันมีอาร์เรย์ประเภทbigintฉันจะลบค่าที่ซ้ำกันในอาร์เรย์นั้นได้อย่างไร เช่น: array[1234, 5343, 6353, 1234, 1234] ฉันควรจะได้รับ array[1234, 5343, 6353, ...] ฉันทดสอบตัวอย่างSELECT uniq(sort('{1,2,3,2,1}'::int[]))ในคู่มือ postgres แต่ใช้งานไม่ได้
87 postgresql 

6
ฉันสามารถใช้ค่าส่งกลับของ INSERT … RETURNING ใน INSERT อื่นได้หรือไม่
สิ่งนี้เป็นไปได้หรือไม่? INSERT INTO Table2 (val) VALUES ((INSERT INTO Table1 (name) VALUES ('a_title') RETURNING id)); เช่นเดียวกับการใช้ค่า return เป็นค่าเพื่อแทรกแถวในตารางที่สองโดยอ้างอิงกับตารางแรก?

16
เกิดข้อผิดพลาดขณะติดตั้ง pg (0.17.1) และ Bundler ไม่สามารถดำเนินการต่อได้
ฉันเพิ่งติดตั้งRails 4.0.2และเมื่อสร้างแอพใหม่ในขั้นตอนบันเดิลฉันจะได้รับ: Installing pg (0.17.1) Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension. /Users/Dee/.rvm/rubies/ruby-2.0.0-p247/bin/ruby extconf.rb checking for pg_config... no No pg_config... trying anyway. If building fails, please try again with --with-pg-config=/path/to/pg_config checking for libpq-fe.h... no Can't find the 'libpq-fe.h header *** extconf.rb failed *** Could not create Makefile due to …

8
ชื่อตารางเป็นพารามิเตอร์ฟังก์ชัน PostgreSQL
ฉันต้องการส่งชื่อตารางเป็นพารามิเตอร์ในฟังก์ชัน Postgres ฉันลองใช้รหัสนี้: CREATE OR REPLACE FUNCTION some_f(param character varying) RETURNS integer AS $$ BEGIN IF EXISTS (select * from quote_ident($1) where quote_ident($1).id=1) THEN return 1; END IF; return 0; END; $$ LANGUAGE plpgsql; select some_f('table_name'); และฉันได้รับสิ่งนี้: ERROR: syntax error at or near "." LINE 4: ...elect * from quote_ident($1) …

1
อัปเดตการประทับเวลาเมื่อมีการอัปเดตแถวใน PostgreSQL
ใน MySQL เราสามารถดำเนินการได้โดยที่อัปเดตคอลัมน์changetimestampทุกครั้งที่มีการเปลี่ยนแปลงแถว: create table ab ( id int, changetimestamp timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP ); มีสิ่งที่คล้ายกับการทำข้างต้นใน PostgreSQL หรือไม่?

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