相关疑难解决方法(0)

如何在postgres不同步时重置postgres的主键序列?

我遇到了我的主键序列与我的表行不同步的问题.

也就是说,当我插入一个新行时,我得到一个重复的键错误,因为串行数据类型中隐含的序列返回一个已经存在的数字.

这似乎是由导入/恢复不能正确维护序列引起的.

postgresql primary-key database-sequence

482
推荐指数
17
解决办法
23万
查看次数

我如何(或可以)在多列上选择DISTINCT?

我需要检索表中的所有行,其中2列组合都是不同的.因此,我希望所有在同一天没有任何其他销售的销售以相同的价格出售.基于日期和价格的唯一销售将更新为活动状态.

所以我在想:

UPDATE sales
SET status = 'ACTIVE'
WHERE id IN (SELECT DISTINCT (saleprice, saledate), id, count(id)
             FROM sales
             HAVING count = 1)
Run Code Online (Sandbox Code Playgroud)

但是我的大脑比那更远了.

sql postgresql distinct duplicates sql-update

382
推荐指数
4
解决办法
86万
查看次数

如何在PostgreSQL中设置自动增量主键?

我在PostgreSQL中有一个包含22列的表,我想添加一个自动增量主键.

我试图创建一个名为idBIGSERIAL类型的列,但pgadmin响应错误:

ERROR: sequence must have same owner as table it is linked to.
Run Code Online (Sandbox Code Playgroud)

有谁知道如何解决这个问题?如何在PostgreSQL中添加创建自动递增主键而无需再次重新创建表?

sql postgresql

251
推荐指数
6
解决办法
43万
查看次数

为数据库上的用户授予所有权限

我想为用户提供数据库的所有权限,而不是将其作为管理员.我想这样做的原因是,目前DEV和PROD是同一集群上的不同DB,因此我不希望用户能够更改生产对象,但它必须能够更改DEV上的对象.

我试过了:

grant ALL on database MY_DB to group MY_GROUP;
Run Code Online (Sandbox Code Playgroud)

但它似乎没有给予任何许可.

然后我尝试了:

grant all privileges on schema MY_SCHEMA to group MY_GROUP;
Run Code Online (Sandbox Code Playgroud)

它似乎允许我创建对象,但不允许查询属于其他用户的该架构上的\ delete对象

我可以继续在MY_SCHEMA上向用户授予USAGE权限,但是它会抱怨没有权限在桌子上......

所以我想我的问题是:是否有任何简单的方法可以在数据库上为用户提供所有权限?

我正在研究PostgreSQL 8.1.23.

sql postgresql privileges ddl grant

176
推荐指数
5
解决办法
25万
查看次数

Postgres手动改变序列

我正在尝试将序列设置为特定值.

SELECT setval('payments_id_seq'), 21, true
Run Code Online (Sandbox Code Playgroud)

这给出了一个错误:

ERROR: function setval(unknown) does not exist

使用ALTER SEQUENCE似乎也不起作用?

ALTER SEQUENCE payments_id_seq LASTVALUE 22
Run Code Online (Sandbox Code Playgroud)

如何才能做到这一点?

参考:https://www.postgresql.org/docs/current/static/functions-sequence.html

postgresql database-sequence

149
推荐指数
5
解决办法
14万
查看次数

如何在PostgreSQL中实现多对多关系?

我相信标题是不言自明的.如何在PostgreSQL中创建表结构以建立多对多关系.

我的例子:

Product(name, price);
Bill(name, date, Products);
Run Code Online (Sandbox Code Playgroud)

sql database postgresql database-design many-to-many

68
推荐指数
1
解决办法
6万
查看次数

PostgreSQL下一个序列的值?

我在我的Codeigniter网站上使用PostgreSQL.我正在使用杂货店crud来添加,编辑和删除操作.在进行编辑或添加时,我想根据内容的ID动态重命名上传的文件.我可以使用杂货crud的callback_after_upload功能来做到这一点.

在添加新内容时,我想要内容的下一个ID.我尝试使用nextval()函数,但序列随之增加.如何在不使用nextval()函数的情况下获取序列的最后一个值?

或者有一种简单的方法可以做到这一点吗?

postgresql codeigniter sequence nextval postgresql-9.1

30
推荐指数
5
解决办法
9万
查看次数

currval尚未定义此会话,如何获得多会话序列?

我的目标是在表中插入新行时自动插入主键字段.

如何在PostgreSQL中获得从一个会话到另一个会话的序列?

 doubleemploi@hanbei:/home/yves$ psql -d test
 Mot de passe : 
 psql (8.4.13)
 Saisissez « help » pour l''aide.

 test=> create sequence test001 start 10;
 CREATE SEQUENCE
 test=> select currval('test001');
 ERREUR:  la valeur courante (currval) de la séquence « test00 » n''est pas encore définie dans cette session
 --- current value not yet defined this session (???)
 test=> select setval('test001', 10);
 setval 
 --------
      10
 (1 ligne)

 test=> select currval('test00');
  currval 
 ---------
       10
 (1 ligne)

 test=> \q
 test@hanbei:/home/yves$ psql -d test
 Mot …
Run Code Online (Sandbox Code Playgroud)

postgresql database-design auto-increment postgresql-8.4

29
推荐指数
3
解决办法
5万
查看次数

字符串列上的postgresql索引

说,我有一个表ResidentInfo,在这个表中我有唯一的约束HomeAddress,这是VARCHAR类型.对于将来的查询,我将在此列上添加索引.查询只有操作=,我将使用B-TREE模式,因为目前不建议使用哈希模式.

问题:从效率的角度来看,使用B-TREE,你认为我应该添加一个新的列,数字1,2,3 ....,N对应不同的homeaddress,而不是添加索引HomeAddress,我应该添加索引数字列?

我问这个问题因为我不知道索引是如何工作的.

database postgresql indexing

24
推荐指数
2
解决办法
3万
查看次数

如果不存在,如何创建序列

我试图使用Check中的代码来确定Postgres中是否存在序列(plpgsql).

如果序列不存在则创建序列.两次运行此代码会导致异常:

序列......已经存在.

如果序列不存在,如何创建序列?

如果序列不存在,则不应写入任何消息且不应发生错误,因此我不能在该问题的另一个答案中使用存储过程,因为如果序列存在,它每次都会将消息写入日志文件.

do $$
begin

SET search_path = '';
IF not EXISTS (SELECT * FROM pg_class
             WHERE relkind = 'S'
               AND oid::regclass::text = 'firma1.' || quote_ident('myseq'))
  THEN

SET search_path = firma1,public;

create sequence myseq;

END IF;

SET search_path = firma1,public;

end$$;

select nextval('myseq')::int as nr;
Run Code Online (Sandbox Code Playgroud)

sql postgresql database-design plpgsql postgresql-9.2

21
推荐指数
3
解决办法
4万
查看次数