Sal*_*aly 5 postgresql pg-dump postgresql-9.6 postgresql-10
从服务器上的转储文件恢复数据库时出现以下错误:
错误:关系"table_id_seq"不存在第
1行:SELECT pg_catalog.setval('table_id_seq',362,true);
这是我的dump命令:
pg_dump -U username -h localhost db_name > filename.sql
Run Code Online (Sandbox Code Playgroud)
这是我在服务器上的恢复命令:
psql -U username -h localhost db_name < filename.sql
Run Code Online (Sandbox Code Playgroud)
请帮忙,谢谢.
Sal*_*aly 10
在我从@clemens获得信息并进行一些研究之后,我发现在我的转储文件中CREATE SEQUENCE table_id_seq有一个声明AS integer,说明为什么当我恢复到新数据库时它没有nextval()为序列创建.如果我AS integer从该CREATE SEQUENCE部分中删除该语句,则查找.
在我的转储文件中:
CREATE SEQUENCE table_id_seq
AS integer
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
Run Code Online (Sandbox Code Playgroud)
AS integer从转储文件中删除
CREATE SEQUENCE table_id_seq
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
Run Code Online (Sandbox Code Playgroud)
就我而言,序列检查区分大小写。这就是我收到关系错误的原因。所以也许它可以帮助像我这样绝望地来到这里的人。我在 SQL 语句中的单引号内使用了双引号。
SELECT nextval('"USER_ID_seq"');
Run Code Online (Sandbox Code Playgroud)
官方文档中有一些示例: https://www.postgresql.org/docs/9.1/functions-sequence.html
| 归档时间: |
|
| 查看次数: |
4645 次 |
| 最近记录: |