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

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

7
จัดกลุ่มผลลัพธ์การสืบค้นตามเดือนและปีเป็น postgresql
ฉันมีตารางฐานข้อมูลต่อไปนี้บนเซิร์ฟเวอร์ Postgres: id date Product Sales 1245 01/04/2013 Toys 1000 1245 01/04/2013 Toys 2000 1231 01/02/2013 Bicycle 50000 456461 01/01/2014 Bananas 4546 ผมอยากจะสร้างแบบสอบถามที่จะช่วยให้การSUMของSalesคอลัมน์และกลุ่มผลการค้นหาตามเดือนและปีดังต่อไปนี้: Apr 2013 3000 Toys Feb 2013 50000 Bicycle Jan 2014 4546 Bananas มีวิธีง่าย ๆ ในการทำเช่นนั้น?
156 sql  postgresql 

4
สัญลักษณ์แทน PostgreSQL เช่นเดียวกับรายการคำใด ๆ
ฉันมีรายการคำศัพท์ประมาณ 25 คำ ฉันมีฟิลด์ varchar ใน PostgreSQL ['foo', 'bar', 'baz']สมมติว่ารายการที่เป็น ฉันต้องการค้นหาแถวในตารางของฉันที่มีคำใดคำหนึ่งเหล่านั้น สิ่งนี้จะได้ผล แต่ฉันต้องการบางสิ่งที่หรูหรากว่า select * from table where (lower(value) like '%foo%' or lower(value) like '%bar%' or lower(value) like '%baz%')
156 sql  postgresql 

9
สำรอง / กู้คืนฐานข้อมูล PostgreSQL ที่เชื่อมต่อแล้ว
ฉันพยายามสำรอง / กู้คืนฐานข้อมูล PostgreSQL ตามที่อธิบายไว้ในเว็บไซต์ Docker แต่ข้อมูลไม่ได้รับการกู้คืน ไดรฟ์ข้อมูลที่ใช้โดยอิมเมจฐานข้อมูลคือ: VOLUME ["/etc/postgresql", "/var/log/postgresql", "/var/lib/postgresql"] และ CMD คือ: CMD ["/usr/lib/postgresql/9.3/bin/postgres", "-D", "/var/lib/postgresql/9.3/main", "-c", "config_file=/etc/postgresql/9.3/main/postgresql.conf"] ฉันสร้างคอนเทนเนอร์ DB ด้วยคำสั่งนี้: docker run -it --name "$DB_CONTAINER_NAME" -d "$DB_IMAGE_NAME" จากนั้นฉันเชื่อมต่อคอนเทนเนอร์อื่นเพื่อแทรกข้อมูลด้วยตนเอง: docker run -it --rm --link "$DB_CONTAINER_NAME":db "$DB_IMAGE_NAME" sh -c 'exec bash' psql -d test -h $DB_PORT_5432_TCP_ADDR # insert …

10
การตัดทอนตารางทั้งหมดในฐานข้อมูล Postgres
ฉันต้องลบข้อมูลทั้งหมดออกจากฐานข้อมูล PostgreSQL เป็นประจำก่อนทำการสร้างใหม่ ฉันจะทำสิ่งนี้โดยตรงใน SQL ได้อย่างไร ในขณะที่ฉันจัดการเพื่อให้มากับคำสั่ง SQL ที่คืนคำสั่งทั้งหมดที่ฉันต้องดำเนินการ: SELECT 'TRUNCATE TABLE ' || tablename || ';' FROM pg_tables WHERE tableowner='MYUSER'; แต่ฉันไม่เห็นวิธีเรียกใช้งานโดยทางโปรแกรมเมื่อมี

13
ข้อดีและข้อเสียของการคำนวณใน SQL และแอปพลิเคชันของคุณคืออะไร
shopkeeper ตารางมีฟิลด์ต่อไปนี้: id (bigint),amount (numeric(19,2)),createddate (timestamp) สมมุติว่าฉันมีตารางด้านบน ฉันต้องการรับบันทึกเมื่อวานและสร้างรายงานโดยพิมพ์จำนวนเงินเป็นเซนต์ วิธีหนึ่งในการทำคือการคำนวณในแอปพลิเคชัน java ของฉันและดำเนินการแบบสอบถามง่าย ๆ Date previousDate ;// $1 calculate in application Date todayDate;// $2 calculate in application select amount where createddate between $1 and $2 จากนั้นวนรอบบันทึกและแปลงจำนวนเงินเป็นเซ็นต์ในแอปพลิเคชัน java ของฉันและสร้างรายงาน อีกวิธีหนึ่งก็เหมือนกับการคำนวณในแบบสอบถามของ sql: select cast(amount * 100 as int) as "Cents" from shopkeeper where createddate …

8
เปลี่ยนประเภทของฟิลด์ varchar เป็นจำนวนเต็ม:“ ไม่สามารถแปลงโดยอัตโนมัติเพื่อพิมพ์จำนวนเต็ม”
ฉันมีตารางขนาดเล็กและเขตข้อมูลหนึ่งมีชนิด " ตัวอักษรเปลี่ยนแปลง " ฉันพยายามที่จะเปลี่ยนเป็น " จำนวนเต็ม " แต่มันทำให้เกิดข้อผิดพลาดที่ไม่สามารถทำการคัดเลือกนักแสดงได้ มีวิธีแก้ไขหรือไม่ฉันควรสร้างตารางอื่นและนำระเบียนไปใช้โดยใช้แบบสอบถาม ฟิลด์มีค่าจำนวนเต็มเท่านั้น

5
ข้อมูลชนิดใดสำหรับละติจูดและลองจิจูด?
ฉันเป็นมือใหม่กับ PostgreSQL และ PostGIS ฉันต้องการเก็บค่าละติจูดและลองจิจูดในตารางฐานข้อมูล PostgreSQL 9.1.1 ฉันจะคำนวณระยะทางระหว่างสองจุดหาจุดที่ใกล้กว่าโดยใช้ค่าที่ตั้งนี้ ฉันควรใช้ประเภทข้อมูลใดสำหรับละติจูดและลองจิจูด?

9
Postgresql - เปลี่ยนขนาดของคอลัมน์ varchar ให้มีความยาวต่ำกว่า
ฉันมีคำถามเกี่ยวกับALTER TABLEคำสั่งบนตารางที่มีขนาดใหญ่มาก (เกือบ 30 ล้านแถว) หนึ่งในคอลัมน์ที่เป็นและฉันต้องการที่จะปรับขนาดไปvarchar(255) varchar(40)โดยทั่วไปฉันต้องการเปลี่ยนคอลัมน์ของฉันโดยเรียกใช้คำสั่งต่อไปนี้: ALTER TABLE mytable ALTER COLUMN mycolumn TYPE varchar(40); ฉันไม่มีปัญหาหากกระบวนการมีความยาวมาก แต่ดูเหมือนว่าตารางของฉันจะไม่สามารถอ่านได้มากขึ้นในระหว่างคำสั่ง ALTER TABLE มีวิธีที่ฉลาดกว่านี้ไหม? อาจเพิ่มคอลัมน์ใหม่คัดลอกค่าจากคอลัมน์เก่าวางคอลัมน์เก่าแล้วเปลี่ยนชื่อใหม่ในที่สุด? เบาะแสใด ๆ จะได้รับการชื่นชมอย่างมาก! ขอบคุณล่วงหน้า, หมายเหตุ: ฉันใช้ PostgreSQL 9.0

4
สิ่งที่ทำให้เกิดข้อผิดพลาด: ไม่มีการจับคู่ข้อ จำกัด ที่ไม่ซ้ำกันสำหรับคีย์อ้างอิงตาราง
ตัวอย่างโครงสร้างตารางด้านล่างให้ข้อผิดพลาด: ไม่มีการจับคู่ข้อ จำกัด ที่ไม่ซ้ำกันสำหรับคีย์อ้างอิงตารางและมีจ้องมองมันในขณะที่ตอนนี้ฉันไม่สามารถคิดออกว่าทำไมข้อผิดพลาดนี้เกิดขึ้นในสถานการณ์นี้ BEGIN; CREATE TABLE foo ( name VARCHAR(256) PRIMARY KEY ); CREATE TABLE bar( pkey SERIAL PRIMARY KEY, foo_fk VARCHAR(256) NOT NULL REFERENCES foo(name), name VARCHAR(256) NOT NULL, UNIQUE (foo_fk,name) ); CREATE TABLE baz( pkey SERIAL PRIMARY KEY, bar_fk VARCHAR(256) NOT NULL REFERENCES bar(name), name VARCHAR(256) ); …
154 sql  postgresql 

20
PSQLException: การทำธุรกรรมปัจจุบันถูกยกเลิกคำสั่งถูกละเว้นจนกว่าจะสิ้นสุดการบล็อกธุรกรรม
ฉันเห็น stacktrace (ตัด) ต่อไปนี้ในไฟล์ server.log ของ JBoss 7.1.1 Final: Caused by: org.postgresql.util.PSQLException: ERROR: current transaction is aborted, commands ignored until end of transaction block at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2102) at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1835) at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:257) at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:512) at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:374) at org.postgresql.jdbc2.AbstractJdbc2Statement.executeUpdate(AbstractJdbc2Statement.java:302) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [rt.jar:1.6.0_23] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) [rt.jar:1.6.0_23] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) [rt.jar:1.6.0_23] at java.lang.reflect.Method.invoke(Method.java:597) [rt.jar:1.6.0_23] at …

8
วิธีการเลือกสกีมาใน postgres เมื่อใช้ psql?
ฉันมีฐานข้อมูล postgres ที่มีหลายสกีมา เมื่อฉันเชื่อมต่อกับฐานข้อมูลจากเปลือกที่มีpsqlและผมทำงาน\dtจะใช้คีมาเชื่อมต่อเริ่มต้นซึ่งเป็นที่สาธารณะ มีการตั้งค่าสถานะที่ฉันสามารถระบุหรือฉันจะเปลี่ยน schema ได้อย่างไร
151 postgresql  psql 

1
PostgreSQL INSERT ON CONFLICT UPDATE (upsert) ใช้ค่าที่ยกเว้นทั้งหมด
เมื่อคุณเพิ่มแถว (PostgreSQL> = 9.5) และคุณต้องการให้ INSERT ที่เป็นไปได้ตรงกับการอัปเดตที่เป็นไปได้คุณสามารถเขียนได้ดังนี้: INSERT INTO tablename (id, username, password, level, email) VALUES (1, 'John', 'qwerty', 5, 'john@mail.com') ON CONFLICT (id) DO UPDATE SET id=EXCLUDED.id, username=EXCLUDED.username, password=EXCLUDED.password, level=EXCLUDED.level,email=EXCLUDED.email มีวิธีที่สั้นกว่านี้ไหม? เพื่อบอกว่า: ใช้ค่า EXCLUDE ทั้งหมด ใน SQLite ฉันเคยทำ: INSERT OR REPLACE INTO tablename (id, user, password, level, email) VALUES …

4
ทำไม PostgreSQL ทำการสแกนตามลำดับในคอลัมน์ที่จัดทำดัชนี
ตัวอย่างที่ง่ายมาก - หนึ่งตารางหนึ่งดัชนีหนึ่งแบบสอบถาม: CREATE TABLE book ( id bigserial NOT NULL, "year" integer, -- other columns... ); CREATE INDEX book_year_idx ON book (year) EXPLAIN SELECT * FROM book b WHERE b.year > 2009 ให้ฉัน: Seq Scan on book b (cost=0.00..25663.80 rows=105425 width=622) Filter: (year > 2009) ทำไมมันไม่ทำการสแกนดัชนีแทน? ฉันพลาดอะไรไป

13
ค้นหาชื่อโฮสต์และพอร์ตโดยใช้คำสั่ง PSQL
ฉันใช้งาน PSQL อยู่และกำลังพยายามเชื่อมต่อแอปพลิเคชัน Perl กับฐานข้อมูล มีคำสั่งให้ค้นหาพอร์ตและโฮสต์ปัจจุบันที่ฐานข้อมูลกำลังรันอยู่หรือไม่?
150 postgresql  psql 

3
จะแสดงรายการการเชื่อมต่อที่ใช้งานบน PostgreSQL ได้อย่างไร
มีคำสั่งใน PostgreSQL เพื่อเลือกการเชื่อมต่อที่ใช้งานกับฐานข้อมูลที่กำหนดหรือไม่? psqlระบุว่าฉันไม่สามารถวางฐานข้อมูลใดฐานหนึ่งของฉันได้เนื่องจากมีการเชื่อมต่อที่ใช้งานอยู่ดังนั้นฉันจึงต้องการดูว่าการเชื่อมต่อนั้นคืออะไร (และจากเครื่องใด)

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