我有一个表,它在插入记录时使用序列自动生成主键。但是,该序列正在生成负值。
我如何强制只生成正值以及有没有办法随机生成 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/