在我的 postgreSQL DB 应用程序中,我有时需要在运行插入之前检索序列的下一个值。\n我曾经通过向我的用户授予对此类序列的 \xe2\x80\x9cusage\xe2\x80\x9d 权限来实现此目的并使用 \xe2\x80\x9cnextval\xe2\x80\x9d 函数。\n我最近开始使用 \xe2\x80\x9cGENERATED BY DEFAULT AS IDENTITY\xe2\x80\x9d 列作为主键,我仍然能够检索nextval 作为超级用户,但我无法将此类权限授予其他用户。我的错误在哪里\xe2\x80\x99?
\n\n这是一个例子:
\n\n-- <sequence>\nCREATE SEQUENCE public.apps_apps_id_seq\n INCREMENT 1\n START 1\n MINVALUE 1\n MAXVALUE 9223372036854775807\n CACHE 1;\n\nALTER SEQUENCE public.apps_apps_id_seq\n OWNER TO postgres;\n\nGRANT USAGE ON SEQUENCE public.apps_apps_id_seq TO udocma;\n\nGRANT ALL ON SEQUENCE public.apps_apps_id_seq TO postgres;\n-- </sequence>\n\n-- <table>\nCREATE TABLE public.apps\n(\n apps_id integer NOT NULL DEFAULT nextval(\'apps_apps_id_seq\'::regclass),\n apps_born timestamp without time zone NOT NULL DEFAULT now(),\n apps_vrsn character varying(50) COLLATE pg_catalog."default",\n apps_ipad character varying(200) COLLATE pg_catalog."default",\n apps_dscr character …Run Code Online (Sandbox Code Playgroud)