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

17
ฉันจะแก้ไขฟิลด์ภายในประเภทข้อมูล PostgreSQL JSON ใหม่ได้อย่างไร
ด้วย postgresql 9.3 ฉันสามารถเลือกเขตข้อมูลเฉพาะของชนิดข้อมูล JSON ได้ แต่คุณจะแก้ไขได้อย่างไรโดยใช้ UPDATE ฉันไม่พบตัวอย่างใด ๆ ของสิ่งนี้ในเอกสาร postgresql หรือที่ใดก็ตามออนไลน์ ฉันได้ลองสิ่งที่ชัดเจนแล้ว: postgres=# create table test (data json); CREATE TABLE postgres=# insert into test (data) values ('{"a":1,"b":2}'); INSERT 0 1 postgres=# select data->'a' from test where data->>'b' = '2'; ?column? ---------- 1 (1 row) postgres=# update test set …

3
ฉันจะค้นหาโดยใช้ฟิลด์ภายในประเภทข้อมูล PostgreSQL JSON ใหม่ได้อย่างไร
ฉันกำลังมองหาเอกสารและ / หรือตัวอย่างสำหรับฟังก์ชั่น JSON ใหม่ใน PostgreSQL 9.2 โดยเฉพาะรับชุดของบันทึก JSON: [ {name: "Toby", occupation: "Software Engineer"}, {name: "Zaphod", occupation: "Galactic President"} ] ฉันจะเขียน SQL เพื่อค้นหาระเบียนด้วยชื่อได้อย่างไร ในวานิลลา SQL: SELECT * from json_data WHERE "name" = "Toby" คู่มือ dev อย่างเป็นทางการค่อนข้างกระจัดกระจาย: http://www.postgresql.org/docs/devel/static/datatype-json.html http://www.postgresql.org/docs/devel/static/functions-json.html อัปเดตฉัน ฉันได้ใส่กันสรุปสาระสำคัญรายละเอียดสิ่งที่เป็นอยู่ในปัจจุบันเป็นไปได้กับ PostgreSQL 9.2 เมื่อใช้ฟังก์ชั่นที่กำหนดเองคุณสามารถทำสิ่งต่าง ๆ เช่น: SELECT id, json_string(data,'name') FROM …

10
อนุญาตให้ docker container เชื่อมต่อกับฐานข้อมูล postgres ในเครื่อง / โฮสต์
ฉันเพิ่งเล่นกับ Docker และ QGIS และได้ติดตั้งคอนเทนเนอร์ตามคำแนะนำในบทช่วยสอนนี้ ทุกอย่างใช้งานได้ดีแม้ว่าฉันจะไม่สามารถเชื่อมต่อกับฐานข้อมูล localhost postgres ที่มีข้อมูล GIS ทั้งหมดของฉัน ฉันคิดว่านี้เป็นเพราะฐานข้อมูล Postgres ของฉันไม่ได้กำหนดค่าให้ยอมรับการเชื่อมต่อระยะไกลและได้รับการแก้ไขไฟล์ postgres conf จะอนุญาตให้เชื่อมต่อระยะไกลโดยใช้คำแนะนำในบทความนี้ ฉันยังคงได้รับข้อความแสดงข้อผิดพลาดเมื่อฉันพยายามเชื่อมต่อกับฐานข้อมูลของฉันที่เรียกใช้ QGIS ใน Docker: ไม่สามารถเชื่อมต่อกับเซิร์ฟเวอร์ได้: Connection refused Is the server running on host "localhost" (::1) and accepting TCP/IP connections to port 5433? เซิร์ฟเวอร์ postgres กำลังทำงานอยู่และฉันได้แก้ไขไฟล์pg_hba.confของฉันเพื่ออนุญาตการเชื่อมต่อจากช่วงของ ที่อยู่ IP (172.17.0.0/32) ก่อนหน้านี้ฉันเคยสอบถามที่อยู่ IP ของคอนเทนเนอร์นักเทียบท่าโดยใช้docker psและแม้ว่าที่อยู่ IP …

4
ตรวจสอบว่าอาร์เรย์ Postgres JSON มีสตริงหรือไม่
ฉันมีโต๊ะสำหรับเก็บข้อมูลเกี่ยวกับกระต่ายของฉัน ดูเหมือนว่า: create table rabbits (rabbit_id bigserial primary key, info json not null); insert into rabbits (info) values ('{"name":"Henry", "food":["lettuce","carrots"]}'), ('{"name":"Herald","food":["carrots","zucchini"]}'), ('{"name":"Helen", "food":["lettuce","cheese"]}'); ฉันจะหากระต่ายที่ชอบแครอทได้อย่างไร? ฉันคิดสิ่งนี้: select info->>'name' from rabbits where exists ( select 1 from json_array_elements(info->'food') as food where food::text = '"carrots"' ); ฉันไม่ชอบข้อความค้นหานั้น มันเป็นเรื่องยุ่ง ในฐานะผู้ดูแลกระต่ายเต็มเวลาฉันไม่มีเวลาเปลี่ยนสคีมาฐานข้อมูล ฉันแค่อยากเลี้ยงกระต่ายของฉันอย่างถูกต้อง มีวิธีที่อ่านง่ายขึ้นในการทำแบบสอบถามนั้นหรือไม่?

1
วิธีสร้างดัชนีบนฟิลด์ JSON ใน Postgres
ใน PostgreSQL 9.3 Beta 2 (?) ฉันจะสร้างดัชนีบนฟิลด์ JSON ได้อย่างไร ฉันลองใช้ตัว->ดำเนินการที่ใช้hstoreแต่ได้รับข้อผิดพลาดต่อไปนี้: CREATE TABLE publishers(id INT, info JSON); CREATE INDEX ON publishers((info->'name')); ข้อผิดพลาด: ประเภทข้อมูล json ไม่มีคลาสตัวดำเนินการเริ่มต้นสำหรับวิธีการเข้าถึง "btree" คำแนะนำ: คุณต้องระบุคลาสตัวดำเนินการสำหรับดัชนีหรือกำหนดคลาสตัวดำเนินการเริ่มต้นสำหรับชนิดข้อมูล

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