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

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

3
วิธีตรวจสอบว่ามีตารางอยู่ในสคีมาที่กำหนดหรือไม่
Postgres 8.4 และฐานข้อมูลที่สูงกว่ามีตารางทั่วไปในpublicสคีมาและตารางเฉพาะ บริษัท ในcompanyสคีมา companyชื่อสคีมามักเริ่มต้นด้วย'company'และลงท้ายด้วยหมายเลข บริษัท ดังนั้นอาจมีสกีมาเช่น: public company1 company2 company3 ... companynn แอปพลิเคชันจะทำงานกับ บริษัท เดียวเสมอ ระบุไว้ตามใน ODBC หรือสตริงการเชื่อมต่อ npgsql เช่น:search_path search_path='company3,public' คุณจะตรวจสอบว่าตารางที่กำหนดนั้นมีอยู่ในcompanynสคีมาที่ระบุได้อย่างไร เช่น: select isSpecific('company3','tablenotincompany3schema') ควรกลับมาfalseและ select isSpecific('company3','tableincompany3schema') trueควรกลับ ในกรณีใด ๆ ฟังก์ชันควรตรวจสอบเฉพาะcompanynสคีมาที่ผ่านไม่ใช่สคีมาอื่น ๆ ถ้าตารางที่กำหนดมีอยู่ทั้งในและสคีผ่านฟังก์ชั่นควรกลับpublic ควรใช้กับ Postgres 8.4 หรือใหม่กว่าtrue


6
วิธีใช้ RETURNING ด้วย ON CONFLICT ใน PostgreSQL
ฉันมี UPSERT ต่อไปนี้ใน PostgreSQL 9.5: INSERT INTO chats ("user", "contact", "name") VALUES ($1, $2, $3), ($2, $1, NULL) ON CONFLICT("user", "contact") DO NOTHING RETURNING id; หากไม่มีข้อขัดแย้งมันจะคืนค่าดังนี้: ---------- | id | ---------- 1 | 50 | ---------- 2 | 51 | ---------- แต่ถ้ามีข้อขัดแย้งมันจะไม่ส่งคืนแถวใด ๆ : ---------- | id | ---------- ฉันต้องการส่งคืนidคอลัมน์ใหม่หากไม่มีความขัดแย้งหรือส่งคืนidคอลัมน์ที่มีอยู่ของคอลัมน์ที่ขัดแย้งกัน …

2
วิธีรับจำนวนเต็มสองจำนวนขั้นต่ำสุด / สูงสุดใน Postgres / SQL
ฉันจะหาจำนวนสูงสุด (หรือต่ำสุด) ของจำนวนเต็มสองจำนวนใน Postgres / SQL ได้อย่างไร หนึ่งในจำนวนเต็มไม่ใช่ค่าคอลัมน์ ฉันจะยกตัวอย่างสถานการณ์: ฉันต้องการลบจำนวนเต็มจากคอลัมน์ (ในทุกแถว) แต่ผลลัพธ์ไม่ควรน้อยกว่าศูนย์ ดังนั้นเพื่อเริ่มต้นฉันมี: UPDATE my_table SET my_column = my_column - 10; แต่สิ่งนี้อาจทำให้ค่าบางอย่างเป็นลบ สิ่งที่ฉันต้องการ (ในรหัสหลอก) คือ: UPDATE my_table SET my_column = MAXIMUM(my_column - 10, 0);
147 postgresql 


5
PostgreSQL: มันจะดีกว่าถ้าใช้หลายฐานข้อมูลกับหนึ่ง schema หรือฐานข้อมูลหนึ่งที่มีหลาย schema?
หลังจากความคิดเห็นนี้กับหนึ่งในคำถามของฉันฉันคิดว่ามันจะดีกว่าการใช้ฐานข้อมูลเดียวกับ X schemas หรือในทางกลับกัน สถานการณ์ของฉัน: ฉันกำลังพัฒนาเว็บแอปพลิเคชั่นที่เมื่อผู้คนลงทะเบียนฉันสร้าง (จริง ๆ ) ฐานข้อมูล (ไม่มันไม่ใช่เครือข่ายโซเชียล: ทุกคนต้องเข้าถึงข้อมูลของตัวเองและไม่เห็นข้อมูลของผู้ใช้คนอื่น) . นั่นคือวิธีที่ฉันใช้สำหรับเวอร์ชันก่อนหน้าของแอปพลิเคชันของฉัน (ที่ยังคงทำงานบน MySQL): ผ่าน Plesk API สำหรับการลงทะเบียนทุกครั้งฉันทำได้ สร้างผู้ใช้ฐานข้อมูลที่มีสิทธิ์ จำกัด ; สร้างฐานข้อมูลที่สามารถเข้าถึงได้โดยผู้ใช้ที่สร้างไว้ก่อนหน้าและ superuser (สำหรับการบำรุงรักษา) เติมฐานข้อมูล ตอนนี้ฉันจะต้องทำเช่นเดียวกันกับ PostgreSQL (โครงการกำลังจะเติบโตและ MySQL ... ไม่ตอบสนองทุกความต้องการ) ฉันต้องมีการสำรองฐานข้อมูล / สกีมาทั้งหมด: pg_dump ทำงานได้อย่างสมบูรณ์แบบทั้งสองวิธีและเหมือนกันสำหรับผู้ใช้ที่สามารถกำหนดค่าให้เข้าถึงสคีมาเดียวหรือฐานข้อมูลเดียว ดังนั้นสมมติว่าคุณเป็นผู้ใช้ PostgreSQL ที่มีประสบการณ์มากกว่าฉันคุณคิดว่าอะไรคือทางออกที่ดีที่สุดสำหรับสถานการณ์ของฉันและทำไม จะมีความแตกต่างด้านประสิทธิภาพโดยใช้ฐานข้อมูล $ x แทนที่จะเป็น $ x schemas หรือไม่ และจะแก้ปัญหาอะไรได้ดีในอนาคต …

18
แสดงรายการลำดับทั้งหมดใน Postgres db 8.1 ด้วย SQL
ฉันแปลง db จาก postgres เป็น mysql เนื่องจากฉันไม่สามารถหาเครื่องมือที่หลอกลวงได้ฉันจะเปลี่ยนลำดับ postgres ทั้งหมดเป็น autoincrement id ใน mysql ด้วยค่า autoincrement ดังนั้นฉันจะแสดงรายการลำดับทั้งหมดในPostgres DB ( เวอร์ชัน8.1 ) ด้วยข้อมูลเกี่ยวกับตารางที่ใช้ค่าอื่น ๆ ถัดไปที่มีคิวรี่ SQL ได้อย่างไร ระวังว่าฉันไม่สามารถใช้information_schema.sequencesมุมมองในรีลีส 8.4

4
อะไรคือความแตกต่างระหว่าง LATERAL และแบบสอบถามย่อยใน PostgreSQL?
ตั้งแต่ Postgres ออกมาพร้อมกับความสามารถในการLATERALเข้าร่วมฉันได้อ่านมันเนื่องจากฉันกำลังทำการทิ้งข้อมูลที่ซับซ้อนสำหรับทีมของฉันพร้อมกับเคียวรีย่อยที่ไม่มีประสิทธิภาพจำนวนมากซึ่งทำให้เคียวรีโดยรวมใช้เวลาสี่นาทีหรือมากกว่า ฉันเข้าใจว่าการLATERALเข้าร่วมอาจช่วยฉันได้ แต่แม้หลังจากอ่านบทความอย่างนี้จาก Heap Analytics ฉันก็ยังไม่ค่อยติดตาม กรณีการใช้งานสำหรับการLATERALเข้าร่วมคืออะไร? การLATERALเข้าร่วมและการสืบค้นย่อยแตกต่างกันอย่างไร

16
ไม่พบไลบรารีไคลเอนต์ PostgreSQL (libpq)
ฉันพยายามติดตั้ง PostgreSQL สำหรับ Rails บน Mac OS X 10.6 ครั้งแรกที่ฉันลองติดตั้ง MacPorts แต่มันไม่ได้ดีดังนั้นฉันจึงทำการติดตั้ง DMG แบบคลิกเดียว ดูเหมือนว่าจะทำงาน ฉันสงสัยว่าฉันต้องติดตั้งแพ็คเกจพัฒนา PostgreSQL แต่ฉันไม่รู้ว่าจะทำอย่างไรใน OS X นี่คือสิ่งที่ฉันได้รับเมื่อฉันพยายามทำsudo gem install pg: $ sudo gem install pg Building native extensions. This could take a while... ERROR: Error installing pg: ERROR: Failed to build gem native extension. /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby extconf.rb …

6
PostgreSQL ปิดการใช้งานเอาต์พุตเพิ่มเติม
ฉันใช้งานสคริปต์บนเซิร์ฟเวอร์ PostgreSQL ของฉัน: psql db -f sql.sql จากbashหรือในcronสคริปต์ มันทำให้ความพยายามที่จะให้เลขหน้าการส่งออกด้วยหรือmoreless ฉันจะปิดใช้งานการแบ่งหน้าผลลัพธ์ได้psqlอย่างไร สิ่งที่ฉันต้องการทำคือเปลี่ยนข้อมูลฉันไม่สนใจเกี่ยวกับผลลัพธ์ใด ๆ
146 postgresql 


8
วิธีการต่อคอลัมน์ใน Postgres SELECT ได้อย่างไร
ฉันมีสองคอลัมน์สตริงaและในตารางbfoo select a, b from fooค่าผลตอบแทนและa bอย่างไรก็ตามการต่อข้อมูลaและbไม่ทำงาน ฉันเหนื่อย : select a || b from foo และ select a||', '||b from foo อัปเดตจากความคิดเห็น: character(2)คอลัมน์เป็นประเภท

11
จะเพิ่มคอลัมน์ได้อย่างไรหากไม่มีอยู่ใน PostgreSQL
คำถามง่าย ๆ วิธีเพิ่มคอลัมน์xในตารางyแต่เฉพาะเมื่อxไม่มีคอลัมน์อยู่ ฉันพบวิธีแก้ไขที่นี่เท่านั้นวิธีการตรวจสอบว่ามีคอลัมน์อยู่หรือไม่ SELECT column_name FROM information_schema.columns WHERE table_name='x' and column_name='y';

8
ข้อความแสดงข้อผิดพลาด SQLAlchemy แปลก ๆ : TypeError: วัตถุ 'dict' ไม่รองรับการทำดัชนี
ฉันใช้ SQL ที่สร้างขึ้นด้วยมือเพื่อดึงข้อมูลจากฐานข้อมูล PG โดยใช้ SqlAlchemy ฉันพยายามค้นหาที่มี SQL เช่นผู้ประกอบการ '%' และที่ดูเหมือนว่าจะโยน SqlAlcjhemy ผ่านวง: sql = """ SELECT DISTINCT u.name from user u INNER JOIN city c ON u.city_id = c.id WHERE c.designation=upper('fantasy') AND c.id IN (select id from ref_geog where short_name LIKE '%opt') """ # The last line in the …

8
เป็นไปได้ที่จะทำการสืบค้นข้ามฐานข้อมูลด้วย PostgreSQL หรือไม่
ฉันจะเดาว่าคำตอบคือ "ไม่" ตามข้อความแสดงข้อผิดพลาดด้านล่าง (และผลลัพธ์ของ Google นี้ ) แต่มีอยู่แล้วเพื่อดำเนินการค้นหาข้ามฐานข้อมูลโดยใช้ PostgreSQL? databaseA=# select * from databaseB.public.someTableName; ERROR: cross-database references are not implemented: "databaseB.public.someTableName" ฉันกำลังทำงานกับข้อมูลบางส่วนที่แบ่งพาร์ติชันระหว่างสองฐานข้อมูลแม้ว่าข้อมูลจะถูกแชร์ระหว่างสองคอลัมน์ (คอลัมน์ผู้ใช้ในฐานข้อมูลหนึ่งมาจากusersตารางในฐานข้อมูลอื่น) ฉันไม่รู้ว่าทำไมเหล่านี้เป็นสองฐานข้อมูลแยกต่างหากแทนสคีมา แต่ c'est la vie ...
144 sql  postgresql 

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