database - Postgres 序列正在生成负值作为主键

标签 database postgresql postgresql-9.5

我有一个表,它在插入记录时使用序列自动生成主键。但是,该序列正在生成负值。

我如何强制只生成正值以及有没有办法随机生成 id(尤其是 varchar 类型)

questionnaries.sql#

CREATE TABLE public.questionnaries
(
  id integer NOT NULL DEFAULT nextval('questionnaries_id_seq'::regclass),
  personname character varying(255) NOT NULL,
  question character varying(255) NOT NULL,
  response character varying(255) NOT NULL,
  CONSTRAINT questionnaries_pkey PRIMARY KEY (id)
)
WITH (
  OIDS=FALSE
);
ALTER TABLE public.questionnaries
  OWNER TO postgres;

questionnaries_id_seq

CREATE SEQUENCE public.questionnaries_id_seq
  INCREMENT 1
  MINVALUE 1
  MAXVALUE 9223372036854775807
  START 6
  CACHE 1;
ALTER TABLE public.questionnaries_id_seq
  OWNER TO postgres;

最佳答案

首先创建一个如下所示的序列。无论你想从哪个数字开始,都可以给出它,例如0 或 100。

CREATE SEQUENCE questionnaries_id_seq START 0;

你也可以查询

SELECT nextval('questionnaries_id_seq');

关于database - Postgres 序列正在生成负值作为主键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50282615/

相关文章:

postgresql - 在 SQLAlchemy 中加入集合返回函数 (SRF) 和访问列

postgresql - Postgresql 列出具有同一行值的性别类型

postgresql - 为什么 autovacuum 不吸尘我的 table ?

MySQL逗号分隔值到多行

database - 使用什么 NoSQL 数据库?

java - 出现错误 "Illegal attempt to map a non collection as a @OneToMany, @ManyToMany or @CollectionOfElements"

postgresql - 在外部表上截断

sql - 有条件地选择 postgresQL 中的列

hibernate - 无法在 Wildfly 上使用 Hibernate 创建 Postgresql 表

mysql - 在数据库中创建新列或创建新表