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

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

2
ลำดับทางชีวภาพของ UniProt ใน PostgreSQL
วิธีที่ดีที่สุดในการจัดเก็บลำดับทางชีวภาพของ UniProt ใน PostreSQL คืออะไร รายละเอียดข้อมูล เราดึงลำดับ 12 ล้านจากUniProt - จำนวนนี้น่าจะเพิ่มเป็นสองเท่าทุก 3-10 เดือน ความยาวของลำดับสามารถเปลี่ยนแปลงได้ตั้งแต่ 10 ถึง 50 พันล้านตัวอักษร น้อยกว่า 1% ของลำดับนั้นยาวกว่า 10,000 ตัวอักษร มันจะปรับปรุงประสิทธิภาพในการจัดเก็บลำดับที่ยาวกว่าแยกกันหรือไม่ ลำดับสามารถเป็นได้ทั้งโปรตีนหรือตัวอักษรดีเอ็นเอ ตัวอักษร DNA มี 5 ตัวอักษร (A, T, C, G หรือ -) ตัวอักษรโปรตีนจะมีประมาณ 30 ตัวอักษร เราไม่รังเกียจที่จะเก็บลำดับของตัวอักษรสองตัวที่แตกต่างกันในคอลัมน์ที่แตกต่างกันหรือแม้แต่ตารางที่แตกต่างกัน จะช่วยได้ไหม รายละเอียดการเข้าถึงข้อมูล เพื่อตอบความคิดเห็นของ Jeremiah Peschka: ลำดับโปรตีนและ DNA จะเข้าถึงได้ในเวลาที่ต่างกัน ไม่จำเป็นต้องค้นหาภายในลำดับ (ที่ทำนอกฐานข้อมูล) …
11 postgresql 

1
รีเฟรชมุมมองที่เป็นรูปธรรมของ PostgreSQL โดยอัตโนมัติโดยไม่ต้องใช้ทริกเกอร์
ฉันสร้างมุมมองที่มีชื่อปรากฏบนโต๊ะห่อหุ้มข้อมูลต่างประเทศview_table_A สิ่งที่ฉันต้องการสำหรับมุมมองที่จะได้รับการปรับปรุงโดยอัตโนมัติทุกครั้งหลังใส่ใหม่table_A table_Aฉันพยายามทำสิ่งนี้ด้วยทริกเกอร์ แต่มันไม่ทำงาน เป็นไปได้ไหมที่จะรีเฟรชมุมมองที่ปรากฏขึ้นโดยอัตโนมัติโดยไม่ใช้ทริกเกอร์

5
วิธีตรวจสอบว่ามีการติดตั้งโปรแกรมฐานข้อมูลใดบนเซิร์ฟเวอร์ DataBase ที่ฉันมี acces ให้เรียกใช้แบบสอบถาม
ฉันต้องการตรวจสอบประเภทของ sql ที่กำลังทำงานอยู่บนเซิร์ฟเวอร์ Datasase ที่ฉันสามารถเข้าถึงได้ ฉันมีสิทธิ์เข้าถึงเว็บอินเตอร์เฟสและรายการตารางเท่านั้น ผ่านอินเทอร์เฟซฉันสามารถเรียกใช้แบบสอบถามบนตารางที่มีอยู่ในรายการ ฉันจะรับข้อมูลเพิ่มเติมเกี่ยวกับเซิร์ฟเวอร์และรุ่นที่เซิร์ฟเวอร์ใช้งานอยู่ได้อย่างไร ฉันไม่รู้เกี่ยวกับ IP หรือ PORT ที่เซิร์ฟเวอร์กำลังทำงาน ฉันต้องการทราบว่าเซิร์ฟเวอร์นั้นเป็น MySQL, Mircosoft SQL Server, Oracle SQL, Postgre SQL หรือเซิร์ฟเวอร์ sql อื่น ๆ เว็บไซต์ที่ผมพูดถึงเป็นหนึ่งในนี้: w3schools.com SQL แก้ไข แก้ไข 2: สำหรับบางคำสั่ง select sqlite_version () ใช้งานได้สำหรับฉันมันไม่ทำงาน นี่คือภาพหน้าจอของการตอบสนอง แก้ไข 3: บน Chromium Browser คำสั่งทำงานได้อย่างถูกต้อง อย่างไรก็ตามใน Firefox Browser คำสั่งไม่ทำงาน ฉันยังพูดถึงว่าฉันใช้ Linux …

1
จะเช็คอินทริกเกอร์ได้อย่างไรถ้าทั้งแถวยังคงเหมือนเดิมหลังจากอัพเดท?
แน่นอนฉันสามารถทำได้สำหรับทุกคอลัมน์เปรียบเทียบเช่นนี้ if (old.column1 = new.column1 and old.column2 = new.column2...) แต่มันจะยากรหัส b และยากที่จะรักษาถ้าฉันเพิ่มคอลัมน์อื่นในอนาคตเช่น มีวิธีการตรวจสอบว่าคอลัมน์ทั้งหมดยังคงเหมือนเดิมหรือไม่โดยไม่ตรวจสอบทุกคอลัมน์ด้วยตนเอง?

2
ฉันจะถ่ายโอนข้อมูลตารางทั้งหมดไปยัง CSV สำหรับ schema PostgreSQL ได้อย่างไร
ฉันมีฐานข้อมูลที่มีสคีมาจำนวนมากอยู่ในนั้นและฉันต้องการที่จะถ่ายโอนข้อมูลแต่ละเนื้อหาของตารางไปยัง CSV ฉันตระหนักถึงคำสั่ง COPY แต่ฉันไม่แน่ใจว่าจะเขียนสคริปต์สิ่งที่จะอ่านตารางทั้งหมดใน schema และเรียกใช้ COPY กับพวกเขาได้อย่างไร
11 postgresql  backup  csv 

1
ปฏิเสธการอนุญาตเพื่อสร้าง“ pg_catalog.tablename” ในระหว่าง pg_dump ที่กำหนดเป้าหมายเครื่องอื่น
ฉันพยายามที่จะถ่ายโอนข้อมูลบางตารางจาก 9.5 เบต้า 2 ไปยังเซิร์ฟเวอร์ 9.4.4 รูปแบบของคำสั่งที่ฉันใช้นั้นเป็นมาตรฐานที่ค่อนข้างดี: pg_dump -t table dbname | psql -h hostname -d dbname ฉันใช้ผู้ใช้ Postgres ซึ่งฉันรู้ว่าอาจไม่เหมาะ แต่เนื่องจากทั้งสองนี้เป็นกล่องประมวลผลข้อมูล dev ที่ฉันใช้เท่านั้นและเกี่ยวข้องกับข้อผิดพลาดที่ตามมา เริ่มแรกฉันได้รับข้อผิดพลาด ข้อผิดพลาด: พารามิเตอร์การกำหนดค่าที่ไม่รู้จัก "row_security" ซึ่งคาดว่าเป็นคุณลักษณะนี้ใหม่ใน 9.5 และใช่ฉันรู้ว่าไม่แนะนำให้ใช้ pg_dump ระหว่างรุ่น Postgres ที่แตกต่างกัน แต่หลีกเลี่ยงไม่ได้อย่างน่าเศร้าเนื่องจากฉันได้พบข้อผิดพลาดที่คลุมเครือมากและต้องย้ายขนาดใหญ่ จำนวนข้อมูลคงที่หนึ่งครั้ง ดังนั้นการใช้แฮ็คที่น่าเกลียดนี้เพื่อลบข้อผิดพลาด row_security และการหยุดข้อผิดพลาดครั้งแรก: pg_dump -t tablemame dbname |sed 's/SET row_security = off;//'| psql -v …

4
วิธีเพิ่มคอลัมน์ที่มีข้อ จำกัด foreign key ไปยังตารางที่มีอยู่แล้ว?
ฉันมีตารางต่อไปนี้ CREATE TABLE users (id int PRIMARY KEY); -- already exists with data CREATE TABLE message (); ฉันจะเปลี่ยนmessagesตารางเช่นนั้นได้อย่างไร คอลัมน์ใหม่ที่เรียกว่าsenderถูกเพิ่มเข้าไป โดยที่senderเป็น foreign key อ้างอิงusersตาราง สิ่งนี้ไม่ทำงาน # ALTER TABLE message ADD FOREIGN KEY (sender) REFERENCES users; ERROR: column "sender" referenced in foreign key constraint does not exist คำสั่งนี้ไม่ได้สร้างคอลัมน์ด้วยหรือไม่?

2
การติดตามผู้ใช้ปัจจุบันผ่านมุมมองและทริกเกอร์ใน PostgreSQL
ฉันมีฐานข้อมูล PostgreSQL (9.4) ที่ จำกัด การเข้าถึงระเบียนขึ้นอยู่กับผู้ใช้ปัจจุบันและติดตามการเปลี่ยนแปลงที่ทำโดยผู้ใช้ สิ่งนี้ทำได้โดยการดูและทริกเกอร์และส่วนใหญ่ทำงานได้ดี แต่ฉันมีปัญหากับมุมมองที่ต้องมีINSTEAD OFทริกเกอร์ ฉันพยายามลดปัญหาลง แต่ฉันต้องขออภัยล่วงหน้าว่านี่ยังค่อนข้างนาน สถานการณ์ การเชื่อมต่อกับฐานข้อมูลทั้งหมดที่ทำจากเว็บ front-end dbwebผ่านบัญชีเดียว เมื่อเชื่อมต่อบทบาทที่มีการเปลี่ยนแปลงทางเพื่อให้สอดคล้องกับคนที่ใช้อินเตอร์เฟซเว็บและทุกบทบาทดังกล่าวอยู่ในบทบาทของกลุ่มSET ROLE dbuser(ดูคำตอบนี้สำหรับรายละเอียด) aliceสมมติว่าผู้ใช้ ส่วนใหญ่ของตารางของฉันจะอยู่ในสคีมาที่นี่ผมจะโทรหาและอยู่ในprivate dbownerตารางเหล่านี้ไม่สามารถเข้าถึงได้โดยตรงไปแต่จะไปอีกบทบาทหนึ่งdbuser dbviewเช่น: SET SESSION AUTHORIZATION dbowner; CREATE TABLE private.incident ( incident_id serial PRIMARY KEY, incident_name character varying NOT NULL, incident_owner character varying NOT NULL ); GRANT ALL ON TABLE private.incident …


1
เหตุใด CTE จึงเลวร้ายยิ่งกว่าข้อความค้นหาย่อยแบบอินไลน์
ฉันพยายามเข้าใจวิธีการทำงานของตัววางแผนคิวรีใน postgresql ฉันมีคำถามนี้: select id from users where id <> 2 and gender = (select gender from users where id = 2) order by latest_location::geometry <-> (select latest_location from users where id = 2) ASC limit 50 มันทำงานในเวลาน้อยกว่า 10ms ในฐานข้อมูลของฉันด้วยรายการประมาณ 500k ในตารางผู้ใช้ จากนั้นฉันคิดว่าเพื่อหลีกเลี่ยงการเลือกย่อยที่ซ้ำกันฉันสามารถเขียนแบบสอบถามเป็น CTE อีกครั้งเช่นนี้ with me as ( select …

1
PostgreSQL Common Table Expressions เทียบกับตารางชั่วคราวหรือไม่
เอกสาร PostgreSQL กับการแสดงตัวอย่างต่อไปนี้: WITH regional_sales AS ( SELECT region, SUM(amount) AS total_sales FROM orders GROUP BY region ), top_regions AS ( SELECT region FROM regional_sales WHERE total_sales > (SELECT SUM(total_sales)/10 FROM regional_sales) ) SELECT region, product, SUM(quantity) AS product_units, SUM(amount) AS product_sales FROM orders WHERE region IN (SELECT region FROM …
11 postgresql 

1
การเพิ่มคอลัมน์แบบ nullable ลงในตารางมีค่าใช้จ่ายมากกว่า 10 นาที
ฉันมีปัญหาในการเพิ่มคอลัมน์ใหม่ในตาราง ฉันพยายามเรียกใช้สองสามครั้ง แต่หลังจากผ่านไปนานกว่า 10 นาทีฉันตัดสินใจยกเลิกคิวรีเนื่องจากเวลาล็อค ALTER TABLE mytable ADD mycolumn VARCHAR(50); ข้อมูลที่เป็นประโยชน์: รุ่น PostgreSQL: 9.1 จำนวนแถว: ~ 250K จำนวนคอลัมน์: 38 จำนวนคอลัมน์ที่ nullable: 32 จำนวนข้อ จำกัด : 5 (1 PK, 3 FK, 1 UNIQUE) จำนวนดัชนี: 1 ประเภทระบบปฏิบัติการ: Debian Squeeze 64 ฉันพบข้อมูลที่น่าสนใจเกี่ยวกับวิธีที่ PostgreSQL จัดการคอลัมน์ที่ไม่มีค่า (ผ่าน HeapTupleHeader) การเดาครั้งแรกของฉันคือเนื่องจากตารางนี้มีคอลัมน์ที่สามารถ nullable ได้ 32 คอลัมน์ซึ่งมี 8 …

2
อัปเดตคอลัมน์ด้วยข้อมูลจากตารางอื่น
ฉันกำลังทำงานกับปัญหาที่ซับซ้อน แต่ฉันจะทำให้ปัญหานี้ง่ายขึ้น ฉันมีสองตาราง A [ID, column1, column2, column3] B [ID, column1, column2, column3, column4] และฉันต้องการอัปเดตที่สาม: C [ID, column1, column2,column3] ฉันกำลังปรับปรุงตารางที่สามโดยใช้แบบสอบถามนี้ UPDATE C set column1=t.firstTab, column2=t.secondTab, column3=t.thirdTab from (select A.column1 as firstTab, B.column2 as secTab, (A.column1 + B.column2) thirdTab from A, B limit 1; ) as t ; ฉันได้: UPDATE 0 …

2
ช้าสั่งซื้อด้วย LIMIT
ฉันมีคำถามนี้: SELECT * FROM location WHERE to_tsvector('simple',unaccent2("city")) @@ to_tsquery('simple',unaccent2('wroclaw')) order by displaycount ฉันมีความสุขกับมัน: "Sort (cost=3842.56..3847.12 rows=1826 width=123) (actual time=1.915..2.084 rows=1307 loops=1)" " Sort Key: displaycount" " Sort Method: quicksort Memory: 206kB" " -> Bitmap Heap Scan on location (cost=34.40..3743.64 rows=1826 width=123) (actual time=0.788..1.208 rows=1307 loops=1)" " Recheck Cond: (to_tsvector('simple'::regconfig, unaccent2((city)::text)) …

2
โพสต์การค้นหาข้อความแบบเต็มด้วยหลายคอลัมน์ทำไมข้อตกลงในดัชนีและไม่อยู่ในรันไทม์
ฉันเจอการค้นหาข้อความแบบเต็มใน postgres ในไม่กี่วันที่ผ่านมาและฉันสับสนเล็กน้อยเกี่ยวกับการจัดทำดัชนีเมื่อค้นหาในหลายคอลัมน์ เอกสาร postgres พูดคุยเกี่ยวกับการสร้างts_vectorดัชนีในคอลัมน์ที่ต่อกันเช่น: CREATE INDEX pgweb_idx ON pgweb USING gin(to_tsvector('english', title || ' ' || body)); ซึ่งฉันสามารถค้นหาดังนี้: ... WHERE (to_tsvector('english', title||' '||body) @@ to_tsquery('english', 'foo')) อย่างไรก็ตามหากฉันต้องการค้นหาเฉพาะชื่อบางครั้งแค่เนื้อหาและบางครั้งทั้งสองฉันจะต้องมีดัชนีแยก 3 ตัว และถ้าฉันเพิ่มในคอลัมน์ที่สามนั่นอาจเป็น 6 ดัชนีและอื่น ๆ อีกทางเลือกหนึ่งที่ฉันไม่ได้เห็นในเอกสารเป็นเพียงการจัดทำดัชนีสองคอลัมน์แยกกันจากนั้นใช้WHERE...ORแบบสอบถามปกติ: ... WHERE (to_tsvector('english', title) @@ to_tsquery('english','foo')) OR (to_tsvector('english', body) @@ to_tsquery('english','foo')) การเปรียบเทียบทั้งสองแถวบน ~ 1 …

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