相关疑难解决方法(0)

如何使用表中的特定max(id)更改PostgreSQL中的Sequence?

我需要正确地遵循SQL脚本语法.在postgres中,你不能真正将"alter sequence"与"select max(id)"链接起来.那么以PostgreSQL接受它的方式编写脚本的正确方法是什么?

这是脚本,所以你可以知道我需要什么:

 alter SEQUENCE notification_settings_seq START with (select max(id) from game_user)
Run Code Online (Sandbox Code Playgroud)

sql postgresql

3
推荐指数
1
解决办法
4555
查看次数

使用Django重置Postgres数据库的主键

我遇到了糟糕的表问题,因为我创建了自己的用户类而不是切换到默认的Django类.无数头痛后,我们决定只是做一个干净python manage.py resetsyncdb.创建了一个新用户,但User.id的主键计数器从前一个用户开始,这意味着在创建使用User.id作为主键的其他表时,它们总是处于关闭状态.

我怎么能完全重写,以便从1开始,或者改变计数器,使它现在为2(因为我创建了一个用户)?如果它涉及SQL,请告诉我在哪里放置它,因为我的应用程序托管在Heroku上.

谢谢!

django postgresql primary-key auto-increment

2
推荐指数
1
解决办法
2833
查看次数

如何使用Postgres将JSON数据插入到我的表中

我有2列的客户表

CREATE TABLE clients
(
    client_id    serial primary key,
    name        VARCHAR(40) not null
)
Run Code Online (Sandbox Code Playgroud)

我有一个JSON数据像

[{client_id:"1",name:"Rick"},{client_id:"2",name:"Carlin"}]
Run Code Online (Sandbox Code Playgroud)

现在,我需要使用此json进行解析并将其插入到我的客户表中。我如何使用jsp servletpostgres数据库做到这一点。

sql postgresql json jsp servlets

2
推荐指数
1
解决办法
1917
查看次数

如何有效地检查 PostgreSQL 中已使用和未使用值的序列

在 PostgreSQL (9.3) 中,我有一个表定义为:

CREATE TABLE charts
( recid serial NOT NULL,
  groupid text NOT NULL,
  chart_number integer NOT NULL,
  "timestamp" timestamp without time zone NOT NULL DEFAULT now(),
  modified timestamp without time zone NOT NULL DEFAULT now(),
  donotsee boolean,
  CONSTRAINT pk_charts PRIMARY KEY (recid),
  CONSTRAINT chart_groupid UNIQUE (groupid),
  CONSTRAINT charts_ichart_key UNIQUE (chart_number)
);

CREATE TRIGGER update_modified
  BEFORE UPDATE ON charts
  FOR EACH ROW EXECUTE PROCEDURE update_modified();
Run Code Online (Sandbox Code Playgroud)

我想用如下序列替换chart_number:

CREATE SEQUENCE charts_chartnumber_seq START 16047;
Run Code Online (Sandbox Code Playgroud)

以便通过触发器或函数,添加新图表记录自动按升序生成新图表编号。但是,没有现有的海图记录可以更改海图编号,而且多年来分配的海图编号一直存在跳跃现象。因此,在为新图表记录分配新图表编号之前,我需要确保尚未使用“新”图表编号,并且没有为具有图表编号的任何图表记录分配不同的编号。

如何才能做到这一点?

postgresql sequence gaps-and-islands

2
推荐指数
1
解决办法
1789
查看次数

如何批量更新所有表的序列 ID postgreSQL

我使用 TablePlus(SQL 客户端)将 Postgres SQL 文件导入到我的服务器,但在插入新行后,出现如下错误:

SQLSTATE[23505]:唯一违规:7 错误:重复键值违反唯一约束 \"users_pkey\" 详细信息:键 (id)=(1) 已经存在

我知道它是由序列值为 0 引起的,需要通过以下代码更新:

SELECT setval(_sequence_name_, max(id)) FROM _table_name_;
Run Code Online (Sandbox Code Playgroud)

但是如果我必须一一写入所有表序列(可能是数百个序列),则需要很多时间。那么如何一次更新所有序列呢?

sql postgresql database-sequence

2
推荐指数
1
解决办法
615
查看次数

Postgres:更新所有表的主键序列

我已手动将生产中的所有数据导入到开发服务器,但出现此错误。我还在这里阅读了修复此问题的文章,但仅限于单个表。我已经导入了大约 10 个以上的表及其数据。这是错误:

PG::UniqueViolation: ERROR: duplicate key value violates unique constraint "influences_pkey" DETAIL: Key (id)=(1) already exists. : INSERT INTO "influences" ("name", "created_at", "updated_at") VALUES ($1, $2, $3) RETURNING "id"
Run Code Online (Sandbox Code Playgroud)

postgresql

1
推荐指数
1
解决办法
1363
查看次数