I just learned about IDENTITY columns in PostgreSQL 10. I am working on
upgrading a database for an upcoming major revision of my company's software
package, and I want to make all of the columns defined as "serial" or
"bigserial" IDENTITY columns. I found a nice web page with a function that will
do that. The problem I am running into is that I can't see IDENTITY columns in
pgAdmin. I've tried both in pgAdmin 4 and in BigSQL's version as shipped with
its implementation of PostgreSQL 10.3. After running the function, pgAdmin
shows me the following CREATE script for my table:
CREATE TABLE public.alarm_comments
(
key bigint NOT NULL,
alarm_key smallint,
alarm_comment character varying(256) COLLATE pg_catalog."default",
updated_by character varying(16) COLLATE pg_catalog."default",
updated_date timestamp with time zone DEFAULT ('now'::text)::timestamp(6)
with time zone,
CONSTRAINT alarm_comments_pkey PRIMARY KEY (key)
)
WITH (
OIDS = TRUE
)
TABLESPACE pg_default;
ALTER TABLE public.alarm_comments
OWNER to postgres;
psql, on the other hand, shows me this:
Stripco for Conversion=# \d alarm_comments
Table "public.alarm_comments"
Column | Type | Collation | Nullable |
Default
---------------+--------------------------+-----------+----------+--------------
------------------------------
key | bigint | | not null | generated by
default as identity
alarm_key | smallint | | |
alarm_comment | character varying(256) | | |
updated_by | character varying(16) | | |
updated_date | timestamp with time zone | | | ('now'::text)
::timestamp(6) with time zone
Indexes:
"alarm_comments_pkey" PRIMARY KEY, btree (key)
I need to be able to see the IDENTITY in pgAdmin, since that's what we use for
all of our database administration. If I can't see that a column is an IDENTITY
column, then I may not be able to use IDENTITY columns at all.