Tag: postgresql

安全且干净地重命名在Postgres中使用串行主键列的表?

我知道使用SERIAL主键的PostgreSQL表结束了由PostgreSQL创build的隐式索引,序列和约束。 问题是如何重新命名这些隐式对象时重命名表。 以下是我最后想到的具体问题。 给定一个表,如 CREATE TABLE foo ( pkey SERIAL PRIMARY KEY, value INTEGER ); Postgres输出 NOTICE: CREATE TABLE will create implicit sequence "foo_pkey_seq" for serial column "foo.pkey" NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "foo_pkey" for table "foo" Query returned successfully with no result in 52 ms. PgAdmin III显示下表作为该表的DDL CREATE TABLE […]

SQL:多次重复一个结果行,并对行进行编号

我有一个像这样的结果的SQL查询: value | count ——+—— foo | 1 bar | 3 baz | 2 现在我想扩大这个,使得每一行count大于1的行多次出现。 我也需要这些行进行编号。 所以我会得到: value | count | index ——+——-+—— foo | 1 | 1 bar | 3 | 1 bar | 3 | 2 bar | 3 | 3 baz | 2 | 1 baz | 2 | 2 我必须在所有主要数据库(Oracle,SQL Server,MySQL,PostgreSQL等等)上进行这项工作。 […]

PostgreSQL函数中语言sql和语言plpgsql的区别

在数据库开发中是非常新的,所以我对我的下面的例子有一些怀疑: 函数f1() – 语言sql create or replace function f1(istr varchar) returns text as $$ select 'hello! '::varchar || istr; $$ language sql; 函数f2() – 语言plpgsql create or replace function f2(istr varchar) returns text as $$ begin select 'hello! '::varchar || istr; end; $$ language plpgsql; 这两个函数可以被称为select f1('world')或select f2('world') 。 如果我调用select f1('world') , 输出将是: `hello! world` […]

unpivot和PostgreSQL

PostgreSQL中是否有一个不相等的函数?

如何从最后插入的行中获取值?

有没有办法从最后插入的行获取值? 我在插入一行PK的地方会自动增加,我想得到这个PK。 只有PK保证在表中是唯一的。 我正在使用JDBC和PostgreSQL的Java。

不能简单地使用PostgreSQL表名(“关系不存在”)

我试图运行下面的PHP脚本来做一个简单的数据库查询: $db_host = "localhost"; $db_name = "showfinder"; $username = "user"; $password = "password"; $dbconn = pg_connect("host=$db_host dbname=$db_name user=$username password=$password") or die('Could not connect: ' . pg_last_error()); $query = 'SELECT * FROM sf_bands LIMIT 10'; $result = pg_query($query) or die('Query failed: ' . pg_last_error()); 这会产生以下错误: 查询失败:错误:关系“sf_bands”不存在 在所有的例子中,我可以find有人得到一个错误,说明关系不存在,这是因为他们在他们的表名中使用大写字母。 我的表名不包含大写字母。 有没有办法查询我的表,而不包括数据库名称,即showfinder.sf_bands ?

Postgres中的快速随机行select

我有一个包含几百万行的postgres中的表。 我在网上查了一下,发现了以下内容 SELECT myid FROM mytable ORDER BY RANDOM() LIMIT 1; 它的工作原理,但它真的很慢…有没有另一种方式来进行查询,或直接的方式来select一个随机的行而不读取所有的表? 顺便说一下,“myid”是一个整数,但它可以是一个空的字段。 谢谢

在PostgreSQL中分组LIMIT:显示每个组的前N行?

我需要为每个组取前N行,按自定义列sorting。 鉴于下表: db=# SELECT * FROM xxx; id | section_id | name —-+————+—— 1 | 1 | A 2 | 1 | B 3 | 1 | C 4 | 1 | D 5 | 2 | E 6 | 2 | F 7 | 3 | G 8 | 2 | H (8 rows) […]

不可能在Mavericks上安装PG gem

我正在尝试安装pg gem,以便再次使用我的rails项目。 但是我得到这个错误: 构build本机扩展。 这可能需要一段时间…错误:错误安装pg:错误:无法构buildgem本机扩展。 /Users/jeanosorio/.rvm/rubies/ruby-2.0.0-p247/bin/ruby extconf.rb checking for pg_config… no No pg_config… trying anyway. If build立失败,请再次尝试–with-pg-config = / path / to / pg_config检查libpq-fe.h … no找不到'libpq-fe.h头文件* extconf.rb失败*由于某种原因无法创buildMakefile,可能缺less必要的库和/或头文件。 检查mkmf.log文件以获取更多详细信息。 您可能需要configuration选项。 提供的configuration选项:–with-opt-dir –without-opt-dir –with-opt-include –without-opt-include = $ {opt-dir} / include –with-opt-lib – without-opt-lib = $ {opt-dir} / lib –with-make-prog –without-make-prog –srcdir =。 –curdir –ruby = / Users […]

如何删除PostgreSQL数据库,如果有活动的连接呢?

我需要编写一个脚本来删除PostgreSQL数据库。 可能有很多的连接,但脚本应该忽略这一点。 打开连接时,标准DROP DATABASE db_name查询不起作用。 我该如何解决这个问题?