在Postgres中意外地删除了自动递增的主键id列中的信息后,我的目标是用生成的一系列数据重新填充它。例如: UPDATE mytable
SET id = (SELECT GENERATE_SERIES(1,3456)) 这将抛出error: ERROR:用作表达式的子查询返回的多行 UPDATE mytable
SET id = SELECT a.n from generate_series(1, 3456) as a(n) (抛出语法错误) 用PostgreSQL中生成的序列更新单个列的正确方法是什么?为什么SET不能在这里工作?
我在Java上运行这个PostgreSQL查询,它抛出了一个错误" error :语法错误在或接近":“但是当我直接运行的时候,这个查询正在处理Postgresql。我认为Array[]::integer[]引起了这个问题。有人知道吗?”
String query = "WITH RECURSIVE tree AS ( SELECT id, ARRAY[]::integer[] AS ancestors \n" +
" FROM regions \n" +
" WHERE
我正在将我的MySQL数据库迁移到PostgreSQL。当连接数据库到我的Python脚本时,我得到一些语法错误。因此,您能否将此MySQL查询转换为PostgreSQL:
select ifnull((select ifnull(run_id,0) from searchbank order by run_id desc limit 0,1),0)
我在C# .NET 4.0应用程序中使用Npgsql2.0.11.94连接到PostgreSql数据库。我根据他们网站上的例子形成了连接字符串,当我用NpgsqlConnection对象调用connect时,会抛出这个异常:
A first chance exception of type 'Npgsql.NpgsqlException' occurred in Npgsql.dll
Additional information: ERROR: 22023: 3 is outside the valid range for parameter "extra_float
我想删除一个包含此名称的角色:
http://bphppgadmin.kattare.com/phppgadmin/vagrant
我从终端执行查询,Postgresql抛出语法错误。
错误:
DROP ROLE http://bphppgadmin.kattare.com/phppgadmin/vagrant;
ERROR: syntax error at or near ":"
LINE 1: DROP ROLE http://bphppgadmin.kattare.com/phppgadmin/vagrant;
有人知道怎么摆脱冒号吗?我尝试了几种解决方案,但至今还没
我有一个(postgresql)查询,类似于
with
recursive account_tree as (<recursive function depending on path>), -- 1
path as (<some other query>) -- 2
select * from account_tree;
这个很好用。
但是当我将with查询重新排序到
with
path as (<some other query>),
我尝试过所有删除重复数据的方法,除了一种,但所有这些方法都需要大量时间来查询。但是,只有JOINS花了更少的时间。但是这里的问题是我能够使用select查询。但是delete在pgadmin4 (PostgreSQL 14.0)中不起作用。我怎样才能解决这个问题。
delete s1 FROM persons s1,
persons s2
where
s1.personid > s2.personid
AND s1.lastname = s2.lastname
order by personid desc
limit 100
它会抛出“语法错误在或接近
我连接到一个PostgreSQL DB (使用PostgreSQL JDBC驱动程序),我在它上设置了网络超时(使用setNetworkTimeout方法),其中有一些奇怪的地方。
当我对select * from table这样的简单查询使用连接时(这需要很长时间),它可以正常工作(等待查询返回结果)。但是当我将连接用于使用函数(如select max(a) from table)的查询时,由于超时,它会抛出一个异常。
示例代码:
// Queries which takes more than 5 seconds
String bigQuery = "select * from d
当尝试使用WHERE NOT EXISTS子句以防止在列age中添加具有重复值的行时,我将得到错误syntax error at or near "WHERE"。
为什么会抛出语法错误?我正在使用PostgreSQL9.1。
SQL
INSERT INTO live.users ("website", "age")
values ('abc', '123')
WHERE NOT EXISTS (SELECT age FROM live.users WHERE age = 123);
误差
ERROR: synt
我需要在Railo中使用PostgreSQL更新一个包含文字百分号的记录。该查询如下所示
<cfquery>
update foo set bar = 'string with % in it %'
</cfQuery>
它抛出错误,因为ColdFusion通常将其解释为通配符。我可以使用以下查询对其进行转义。
<cfquery>
update foo set bar = 'string with escaped \% in it \%'
</cfQuery>
但是,该记录现在在数据库中包含"\%“,并将在
我正在尝试将查询从内部联接转换为直接连接。我最初的查询是:SELECT COUNT(*) FROM x AS t1 INNER JOIN x AS t2 USING (id);和我想简单地将内部连接替换为直接连接:SELECT COUNT(*) FROM x AS t1 STRAIGHT_JOIN x AS t2 USING (id);
第一个查询按预期执行,但第二个查询抛出语法错误。如果我将查询更改为简单的SELECT COUNT(*) FROM x AS t1 STRAIGHT_JOIN x AS t2 ON t1.id=t2.id
MySQL不允许直接加入使用吗?我在医生里没看到这个。
我有PostgreSQL数据库表单,我使用下面的命令创建了数据库和用户。
create database webreporting;
create user csr with password 'csrtest12!@';
grant all on database webreporting to csr;
GRANT ALL PRIVILEGES ON ALL TABLES
IN SCHEMA public to csr;
GRANT ALL PRIVILEGES ON ALL TABLES IN
SCHEMA public T
我有一个查询select array_agg(id) as idtag FROM POdelivery_a where ....
它给了我数组中的id:{26053,26021,26055},我稍后在其他查询中使用它.
对于这个问题,假设我这样使用它:
select * from a where id in {26053,26021,26055}
它给了我一个错误:
错误:"{“处或附近的语法错误
它将接受查询如下:
select * from a where d in (26053,26021,26055)
那么为什么array_agg(id)会返回一个我无法使用的数组呢?我
我正在尝试使用JDBC和PostgreSQL进行查询,但我面临着在任何文档中都找不到的奇怪情况。
如果我通过pgAdmin和H2执行它,下面的查询可以工作(我正在为我的应用程序进行单元测试),但是如果我通过JDBC执行它,我会得到一个语法错误:
Queries.SELECT_SQL
SELECT columns
FROM Table
LEFT JOIN TableToJoin1
LEFT JOIN TableToJoin2
LEFT JOIN TableToJoin3
JOIN TableToJoin4
Queries.ENDING_PAGING_STATEME
我正在构建一个RESTful网络服务。我正在使用Jax(泽西岛),一个简单的客户端和一个简单的服务器。我附加了一个PostgreSQL数据库,它是相应的JDBC驱动程序。
当不涉及数据库内容时,服务器和客户端可以完美地工作。(因此客户机/服务器代码很好)
当我增加服务器以查询数据库时,问题就开始了:
服务器抛出:No suitable driver found for jdbc:postgresql://localhost/MyDataBase
客户端报告一个500 internal service error
如果我以相同的方式(在同一个包中)从一个普通的旧java应用程序中使用数据库,那么
我正在尝试创建一个函数,它将一个查询的所有值的结果相加,并将其与其他一些简单的查询进行比较。
这就是我所拥有的,但是我在begin (第2行)附近得到了一个语法错误:
CREATE FUNCTION trigf1(sbno integer, scid numeric(4,0)) RETURNS integer
BEGIN
declare sum int default 0;
declare max as SELECT totvoters FROM ballotbox WHERE cid=scid AND bno=sbno;
for r as
SELEC
我有一个带有Access 2016前端的ODBC9.5数据库,使用PostgreSQL驱动程序将两者连接起来。如果我想查询数据,我会从以下命令开始:
Dim conn As New ADODB.Connection
conn.Open "Driver={PostgreSQL ANSI};Server=localhost;Database=[name];User Id=[UID];Password=[pass];"
Dim cmd As New ADODB.Command
cmd.ActiveConnection = conn
我的问题是:为什么我不应该在应用程序打开时建立这个
我正在尝试使用PostgreSQL9.2执行这个查询
WITH udetail as (select(regexp_split_to_array('user@domain', E'\\@+')))
select * from udetail[1];
购买它会给我一个语法错误,就在'['开始的地方。这个查询在9.3版下运行良好。因此,我想知道是否有另一种方法来编写查询以获得相同的结果。
数据库是PostgreSQL。当我尝试使用参数执行查询时,例如这个查询
cursor.execute("""
SELECT u.username, up.description,
ts_rank_cd(to_tsvector(coalesce(username,'')|| coalesce(description,'')) , to_tsquery('%s')) as rank
FROM auth_user u INNER JOIN pm_core_userprofile up
当尝试通过JDBC驱动程序(postgresql-9.4.1211.jre7.jar;使用ANT)运行PL/pgSQL时,我得到以下错误:错误:语法错误位于或接近"$“
有没有办法通过设置JDBC属性或更改PL/pgSQL的查询来解决这个问题?
查询:
DO $$
BEGIN
CREATE SEQUENCE id_sequence_SEQ OWNED BY id_sequence.id;
EXCEPTION WHEN duplicate_table
THEN
END
$$
LANGUAGE plpgsql;
错误:
org.postgresql.util.PSQLExcep