Tag: postgresql

在Postgres插入语句生成一个UUID?

我的问题很简单。 我知道的UUID的概念,我想要生成一个引用从我的数据库中的“商店”每个“项目”。 似乎合理的权利? 问题是以下行返回一个错误: honeydb=# insert into items values( uuid_generate_v4(), 54.321, 31, 'desc 1', 31.94); ERROR: function uuid_generate_v4() does not exist LINE 2: uuid_generate_v4(), 54.321, 31, 'desc 1', 31.94); ^ HINT: No function matches the given name and argument types. You might need to add explicit type casts. 我已阅读网页: http : //www.postgresql.org/docs/current/static/uuid-ossp.html 我在Ubuntu 10.04 x64上运行Postgres […]

PostgreSQL多INSERT … RETURNING多列

我用Postgres 9.3build立一个数据库作为后台,有3个表格: table1 (user_id, username, name, surname, emp_date) table2 (pass_id, user_id, password) table3 (user_dt_id, user_id, adress, city, phone) 可以看出table2和table3是table1子表。 我可以提取table1 (父)中新插入行的user_id : INSERT INTO "table1" (default,'johnee','john','smith',default) RETURNING userid; 我需要将新提取的id(从table1 )插入到table2和table3 user_id列以及这些表的唯一其他数据。 基本上3 X INSERT … 我怎么做?

pg_query结果包含string而不是整数,数字

当我从pg_query的postgresql数据库中获取数据时,所有的数字字段都以stringforms返回。 有没有办法解决这个问题,还是我必须按照我需要的方式来模拟每一个领域?

Django的JSONField里面ArrayField

我有一个问题插入到使用ArrayField与JSONField里面的字段。 models.py locations = ArrayField(JSONField(null = True,blank = True), blank=True, null = True) 插 location_arr = [{"locations" : "loc1","amount":Decimal(100.00)},{"locations" : "loc2","amount":Decimal(200.25)}] instance.locations = location_arr instance.save() 当我这样做,我得到了 列“位置”的types是jsonb [],但expression式的types是text [] LINE 1:… d“= 2517,”locations“= ARRAY ['{”loc … 提示:您将需要重写或转换expression式。 所以我试图转储它使用: import json location_arr = [{"locations" : "loc1","amount":Decimal(100.00)},{"locations" : "loc2","amount":Decimal(200.25)}] instance.locations = json.dumps(location_arr) instance.save() 然后我得到了这个 LINE 1:… d“= […]

尝试多个SELECT直到结果可用的方法?

如果我想要以递减精度search表中的单个行,例如: SELECT * FROM image WHERE name LIKE 'text' AND group_id = 10 LIMIT 1 当这不给我结果,试试这个: SELECT * FROM image WHERE name LIKE 'text' LIMIT 1 而当这不给我结果,试试这个: SELECT * FROM image WHERE group_id = 10 LIMIT 1 只用一个expression式就可以做到这一点吗? 当我没有两个但是例如三个或更多个search参数时,也会出现问题。 有没有一个通用的解决scheme? 当search结果按其相关性sorting时,它当然会派上用场。

拆分给定的string,并准备case语句

表 :table_name create table table_name ( given_dates timestamp, set_name varchar ); 插入logging : insert into table_name values('2001-01-01'),('2001-01-05'),('2001-01-10'), ('2001-01-15'),('2001-01-20'),('2001-01-25'), ('2001-02-01'),('2001-02-05'),('2001-02-10'), ('2001-02-15'); 现在我想更新一些date的set_name。 例如 : 我想要这样更新表格: given_dates set_name ———————- 2001-01-01 s1 2001-01-05 s1 2001-01-10 s2 2001-01-15 s2 2001-01-20 2001-01-25 2001-02-01 2001-02-05 2001-02-10 2001-02-15 注意 : given_dates和set_name是传递参数,因为它们是dynamic的。 我可以按照上面s1,s2通过2台s1,s2也可以按要求通过4台。 所以我需要dynamic的case语句来更新set_name 。 给定两个参数 : declare p_dates varchar := '2001-01-01to2001-01-05,2001-01-10to2001-01-15'; declare […]

如何在shell脚本中从postgresql中提取pg_backend_pid并将其传递给另一个进程?

我需要在命令行(或脚本)上运行bin/psql ,并将其pg_backend_pid输出,以便将pg_backend_pid作为命令行parameter passing给另一个进程(由root运行)。 对我来说问题是,其他进程需要在获得pid后运行。 psql (具有相同的pid会话)然后在另一个进程启动后运行查询。 诀窍是Psql需要等到其他进程获得pg_backend_pid并且它必须保持相同的会话。 这可以通过shell脚本或Perl完成吗?

获取连接表格列的不同总和

我在这里有一个问题,我希望有一个简单的解决scheme。 我会尽可能简单地做到这一点: 一张票属于一个参加者 例: select * from tickets JOIN attendees ON attendee.id = tickets.attendee_id 与会者有一个称为“收入”的小数列 也就是说,我需要运行一个查询,返回有关门票的各种信息,包括总收入。 问题是,如果2张门票属于同一个参与者,那么它会将收入计入两次。 我如何才能将与会者的收入总计一次? 我不想使用子查询,因为我的ORM使这很难。 另外一个子查询解决scheme不能缩放,如果我想这样做多个列。 这是我有: 1位参与者,收入为100美元 两张门票都属于该参与者 Select count(tickets.*) as tickets_count , sum(attendees.revenue) as atendees_revenue from tickets LEFT OUTER JOIN attendees ON attendees.id = tickets.attendee_id; =>这告诉我, attendees_revenue是200.我希望它是100.因为在数据库中有一个参与者与existing_revenue为100.我不希望与会者被重复计数。 请让我知道这是否可能。

如何获得一个连续的,增加的数字,没有任何数字缺失的列?

可能重复: 如何在PostgreSQL查询中显示行号? 使用Postgresql中的标识重新sorting列 使用子select更新的PostgreSQLlogging重新sorting 我只是问在PostgreSQL是否存在这样的可能性,如果我有5行,并在一列中有数字1, 2, 3, 4, 5并在这些列是不是主键,如果我删除说trird行,postgreSQL重新枚举这个专栏所以我可以有1, 2, 3, 4而不是1, 2, 4, 5 ?

Postgres:从JSONB字段中展开聚合的键/值对?

我在Postgres 9.4中使用下表: Column │ Type │ Modifiers ─────────────────┼──────────────────────┼────────────────────── id │ integer │ not null default practice_id │ character varying(6) │ not null date │ date │ not null pct_id │ character varying(3) │ total_list_size │ double precision │ not null star_pu │ jsonb │ 我有以下查询: SELECT date, AVG(total_list_size) AS total_list_size, json_object_agg(key, val) AS star_pu FROM […]