Questions tagged «postgresql»

PostgreSQL是一个开放源代码的,对象关系数据库管理系统(ORDBMS),可用于所有主要平台,包括Linux,UNIX,Windows和OSX。提出问题时,请注明确切的Postgres版本。有关管理或高级功能的问题最好直接到dba.stackexchange.com。



1
在PostgreSQL中打印变量的值
我有一个PostgreSQL函数 CREATE OR REPLACE FUNCTION fixMissingFiles() RETURNS VOID AS $$ DECLARE deletedContactId integer; BEGIN SELECT INTO deletedContactId contact_id FROM myContacts WHERE id=206351; -- print the value of deletedContactId variable to the console END; $$ LANGUAGE plpgsql; 如何将DeletedContactId的值打印到控制台?
99 sql  postgresql 

3
如果返回的值为null,则PostgreSQL返回0
我有一个查询返回avg(price) select avg(price) from( select *, cume_dist() OVER (ORDER BY price desc) from web_price_scan where listing_Type='AARM' and u_kbalikepartnumbers_id = 1000307 and (EXTRACT(Day FROM (Now()-dateEnded)))*24 < 48 and price>( select avg(price)* 0.50 from(select *, cume_dist() OVER (ORDER BY price desc) from web_price_scan where listing_Type='AARM' and u_kbalikepartnumbers_id = 1000307 and (EXTRACT(Day FROM …
99 sql  postgresql 

3
Python / postgres / psycopg2:获取刚刚插入的行的ID
我正在使用Python和psycopg2连接到Postgres。 当我插入一行时... sql_string = "INSERT INTO hundred (name,name_slug,status) VALUES (" sql_string += hundred_name + ", '" + hundred_slug + "', " + status + ");" cursor.execute(sql_string) ...如何获取刚插入的行的ID?试: hundred = cursor.fetchall() 使用时返回错误RETURNING id: sql_string = "INSERT INTO domes_hundred (name,name_slug,status) VALUES (" sql_string += hundred_name + ", '" + hundred_slug + "', …

16
docker postgres pgadmin本地连接
我用nginx,php和postgres创建了一个ubuntu图像。 我想将当前映像中的postgres数据库与pgadmin本地计算机上的数据库连接。 我尝试使用docker inspector尝试使用图像ip与我的本地pgadmin建立连接,但没有成功。我还尝试在本地配置一些端口以使连接正常工作。

7
扩展存在,但uuid_generate_v4失败
在Amazon EC2 RDS Postgresql中: => SHOW rds.extensions; rds.extensions -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- btree_gin,btree_gist,chkpass,citext,cube,dblink,dict_int,dict_xsyn,earthdistance,fuzzystrmatch,hstore,intagg,intarray,isn,ltree,pgcrypto,pgrowlocks,pg_trgm,plperl,plpgsql,pltcl,postgis,postgis_tiger_geocoder,postgis_topology,sslinfo,tablefunc,tsearch2,unaccent,uuid-ossp (1 row) 如您所见,uuid-ossp扩展确实存在。但是,当我调用函数generation时uuid_v4,它失败了: CREATE TABLE my_table ( id uuid DEFAULT uuid_generate_v4() NOT NULL, name character varying(32) NOT NULL, ); 这怎么了

3
PostgreSQL是否支持“不区分重音”的排序规则?
在Microsoft SQL Server中,可以指定“不区分重音”的排序规则(对于数据库,表或列),这意味着可以对诸如 SELECT * FROM users WHERE name LIKE 'João' 查找具有Joao名称的行。 我知道可以使用unaccent_string contrib函数从PostgreSQL的字符串中去除重音符号,但是我想知道PostgreSQL是否支持这些“不区分重音符号”的排序规则,因此SELECT上述方法可行。

2
如何获得pg_dump进行正确的身份验证
我尝试使用主机变量PGPASSWORD,.pgpass并且这两个都不允许我向数据库进行身份验证。我有chmod“d .pgpass适当的权限,并也尝试: export PGPASSWORD=mypass and PGPASSWORD=mypass 密码确实包含一个,\但是我将其用单引号引起来PGPASS='mypass\',但仍无法进行身份验证。 我在跑: pg_dump dbname -U username -Fc 而且我仍然收到 pg_dump: [archiver (db)] connection to database "dbname" failed: FATAL: Peer authentication failed for user "username"

4
如何对string_agg()的结果进行排序
我有一张桌子: CREATE TABLE tblproducts ( productid integer, product character varying(20) ) 与行: INSERT INTO tblproducts(productid, product) VALUES (1, 'CANDID POWDER 50 GM'); INSERT INTO tblproducts(productid, product) VALUES (2, 'SINAREST P SYP 100 ML'); INSERT INTO tblproducts(productid, product) VALUES (3, 'ESOZ D 20 MG CAP'); INSERT INTO tblproducts(productid, product) VALUES (4, …

1
PostgreSQL CASE…END有多个条件
这是我的桌子的一部分: gid | datepose | pvc ---------+----------------+------------ 1 | 1961 | 01 2 | 1949 | 3 | 1990 | 02 1 | 1981 | 1 | | 03 1 | | 我想使用以下SELECT CASE波纹填充PVC柱: SELECT gid, CASE WHEN (pvc IS NULL OR pvc = '') AND datpose < 1980) THEN …
97 postgresql  case 

10
postgresql-SQL-`true`值的计数
myCol ------ true true true false false null 在上表中,如果这样做: select count(*), count(myCol); 我懂了 6, 5 我得到,5因为它不计算空条目。 如何计算真实值的数量(示例中为3)? (这是一种简化,实际上我在count函数中使用了一个复杂得多的表达式) 编辑摘要:我也想在查询中包含一个简单的count(*),所以不能使用where子句
97 sql  postgresql 


9
PostgreSQL-获取具有列最大值的行
我正在处理一个Postgres表(称为“ lives”),该表包含带有time_stamp,usr_id,transaction_id和live_remaining列的记录。我需要一个查询,该查询将为我提供每个usr_id的最新live_remaining总数 有多个用户(与usr_id不同) time_stamp不是唯一的标识符:有时,用户事件(表中的每一行)将使用相同的time_stamp发生。 trans_id仅在很小的时间范围内才是唯一的:随着时间的流逝,它会重复 (对于给定的用户)剩余的生存时间可以随着时间增加和减少 例: time_stamp | lives_remaining | usr_id | trans_id ----------------------------------------- 07:00 | 1 | 1 | 1个 09:00 | 4 | 2 | 2 10:00 | 2 | 3 | 3 10:00 | 1 | 2 | 4 11:00 | 4 | 1 | 5 …

8
如何使用postgres在array_agg中排除空值,例如在string_agg中?
如果使用array_agg收集名称,我的名称将以逗号分隔,但是如果有null值,则该null也将被用作集合中的名称。例如 : SELECT g.id, array_agg(CASE WHEN g.canonical = 'Y' THEN g.users ELSE NULL END) canonical_users, array_agg(CASE WHEN g.canonical = 'N' THEN g.users ELSE NULL END) non_canonical_users FROM groups g GROUP BY g.id; 它返回,Larry,Phil而不是仅仅返回Larry,Phil(在我的9.1.2中显示NULL,Larry,Phil)。就像这个小提琴 相反,如果我使用string_agg(),它显示我只有名字(不包括空逗号或空)喜欢这里 问题是我已经Postgres 8.4安装在服务器上,并且string_agg()无法在该服务器上工作。有什么方法可以使array_agg类似于string_agg()吗?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.