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

4
การวางคอลัมน์ PostgreSQL 9.6 และผลข้างเคียงต่อฟังก์ชัน SQL ด้วย CTE
ถ้าฉันมีตารางที่มี 3 คอลัมน์ - พูด A, B และ D - และฉันต้องแนะนำใหม่ - พูด C เพื่อแทนที่ตำแหน่งปัจจุบันของ D ฉันจะใช้วิธีการต่อไปนี้: แนะนำ 2 คอลัมน์ใหม่เป็น C และ D2 คัดลอกเนื้อหาของ D ถึง D2 ลบ D. เปลี่ยนชื่อ D2 เป็น D คำสั่งซื้อใหม่จะเป็น A, B, C และ D ฉันคิดว่านี่เป็นวิธีปฏิบัติที่ถูกต้องตามกฎหมายเพราะจนถึงตอนนี้มันก็ไม่มีปัญหา อย่างไรก็ตามวันนี้ฉันเจอปัญหาเมื่อฟังก์ชั่นที่ดำเนินการคำสั่งบนตารางเดียวกันส่งคืนข้อผิดพลาดต่อไปนี้: table row type and query-specified row type do not …

1
ส่วนคำสั่ง 'return' สามารถส่งคืนคอลัมน์ต้นทางที่ไม่ได้แทรกได้หรือไม่?
นี่คือตัวอย่างเล็กน้อยของปัญหาจริงของฉัน: create table t(id serial primary key, rnd double precision); แน่นอนคุณสามารถส่งคืนคอลัมน์ที่แทรกด้วยreturningประโยค: with w as (insert into t(rnd) values(random()) returning *) insert into t(rnd) select random() from w returning *; /* | ID | RND | |----|----------------| | 9 | 0.203221440315 | */ คุณสามารถคืนค่าตัวอักษร: with w as (insert into t(rnd) values(random()) …

2
ดัชนีใดที่จะใช้กับค่าซ้ำจำนวนมาก
ลองทำข้อสมมติสองสามข้อ: ฉันมีตารางที่มีลักษณะดังนี้: a | b ---+--- a | -1 a | 17 ... a | 21 c | 17 c | -3 ... c | 22 ข้อเท็จจริงเกี่ยวกับชุดของฉัน: ขนาดของตารางทั้งหมดคือ ~ 10 10แถว ฉันมีแถว ~ 100k ที่มีค่าaในคอลัมน์aคล้ายกับค่าอื่น ๆ (เช่นc) นั่นหมายถึง ~ 100k ค่าที่แตกต่างในคอลัมน์ 'a' select sum(b) from t where a = 'c'ส่วนใหญ่เป็นคำสั่งของฉันจะอ่านทั้งหมดหรือส่วนใหญ่ของค่าสำหรับค่าที่กำหนดในเช่น …

1
วิธีการเก็บจำนวนเต็มหนึ่งไบต์ใน PostgreSQL
ในเอกสาร PostgreSQL มีการกล่าวกันว่าชนิดข้อมูลจำนวนเต็มสามารถเก็บไว้ในพื้นที่สอง, สี่หรือแปดไบต์ หนึ่งในคอลัมน์ของตารางในฐานข้อมูลของฉันมีค่าจำนวนเต็มหนึ่งไบต์และฉันต้องการเก็บไว้ในประเภทข้อมูลหนึ่งไบต์ มีส่วนขยายหรือวิธีใช้ชนิดข้อมูลจำนวนเต็มหนึ่งไบต์ใน PostgreSQL หรือไม่ NUMERIC (1,0) มีกี่ไบต์

1
Nest Loop vs. Hash ที่ไม่พึงประสงค์เข้าร่วมใน PostgreSQL 9.6
ฉันมีปัญหากับการวางแผนการสืบค้น PostgreSQL 9.6 ข้อความค้นหาของฉันมีลักษณะเช่นนี้: SET role plain_user; SELECT properties.* FROM properties JOIN entries_properties ON properties.id = entries_properties.property_id JOIN structures ON structures.id = entries_properties.entry_id WHERE structures."STRUKTURBERICHT" != '' AND properties."COMPOSITION" LIKE 'Mo%' AND ( properties."NAME" LIKE '%VASP-ase-preopt%' OR properties."CALCULATOR_ID" IN (7,22,25) ) AND properties."TYPE_ID" IN (6) ฉันเปิดใช้งานการรักษาความปลอดภัยระดับแถวสำหรับตารางที่ใช้งานอยู่ด้านบน ด้วยset enable_nestloop = Trueตัววางแผนคิวรีรัน …

2
วิธีทำให้ DISTINCT ON เร็วขึ้นใน PostgreSQL
ฉันมีตารางstation_logsในฐานข้อมูล PostgreSQL 9.6: Column | Type | ---------------+-----------------------------+ id | bigint | bigserial station_id | integer | not null submitted_at | timestamp without time zone | level_sensor | double precision | Indexes: "station_logs_pkey" PRIMARY KEY, btree (id) "uniq_sid_sat" UNIQUE CONSTRAINT, btree (station_id, submitted_at) ฉันพยายามที่จะได้รับที่ผ่านมาlevel_sensorค่าขึ้นอยู่กับแต่ละsubmitted_at station_idมีประมาณ 400 ที่ไม่ซ้ำกันมีstation_idค่านิยมและรอบ 20k station_idแถวต่อวันต่อ ก่อนสร้างดัชนี: …

3
แบบสอบถาม JOIN ที่เรียบง่ายช้ามาก
โครงสร้าง DB แบบง่าย (สำหรับฟอรัมออนไลน์): CREATE TABLE users ( id integer NOT NULL PRIMARY KEY, username text ); CREATE INDEX ON users (username); CREATE TABLE posts ( id integer NOT NULL PRIMARY KEY, thread_id integer NOT NULL REFERENCES threads (id), user_id integer NOT NULL REFERENCES users (id), date timestamp without time …

1
ข้อ จำกัด ของพาร์ติชันที่ไม่ได้ใช้สำหรับการรวมที่เกี่ยวข้องกับตารางที่แบ่งพาร์ติชันโดยการประทับเวลา
ฉันมีโครงสร้างตารางที่แบ่งพาร์ติชันเช่น: CREATE TABLE measurements ( sensor_id bigint, tx timestamp, measurement int ); CREATE TABLE measurements_201201( CHECK (tx >= '2012-01-01 00:00:00'::timestamp without time zone AND tx < ('2012-01-01 00:00:00'::timestamp without time zone + '1 mon'::interval)) )INHERITS (measurements); CREATE INDEX ON measurements_201201(sensor_id); CREATE INDEX ON measurements_201201(tx); CREATE INDEX ON measurements_201201(sensor_id, tx); .... …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.