PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

3 modi per controllare il tipo di dati di una colonna in PostgreSQL

Ecco tre modi per ottenere il tipo di dati di una determinata colonna in MariaDB.

Il \d Comando

In psql, il \d comando mostra informazioni su tabelle, viste, viste materializzate, indici, sequenze o tabelle esterne.

Possiamo usare questo comando per controllare il tipo di dati delle colonne in una determinata tabella:

\d public.actor

Risultato:

                                             Table "public.actor"
+-------------+-----------------------------+-----------+----------+-----------------------------------------+
|   Column    |            Type             | Collation | Nullable |                 Default                 |
+-------------+-----------------------------+-----------+----------+-----------------------------------------+
| actor_id    | integer                     |           | not null | nextval('actor_actor_id_seq'::regclass) |
| first_name  | character varying(45)       |           | not null |                                         |
| last_name   | character varying(45)       |           | not null |                                         |
| last_update | timestamp without time zone |           | not null | now()                                   |
+-------------+-----------------------------+-----------+----------+-----------------------------------------+
Indexes:
    "actor_pkey" PRIMARY KEY, btree (actor_id)
    "idx_actor_last_name" btree (last_name)
Referenced by:
    TABLE "film_actor" CONSTRAINT "film_actor_actor_id_fkey" FOREIGN KEY (actor_id) REFERENCES actor(actor_id) ON UPDATE CASCADE ON DELETE RESTRICT
Triggers:
    last_updated BEFORE UPDATE ON actor FOR EACH ROW EXECUTE FUNCTION last_updated()

Possiamo aggiungere un segno più (+ ) per rivelare informazioni estese:

\d+ public.actor

Risultato:

                                                                 Table "public.actor"
+-------------+-----------------------------+-----------+----------+-----------------------------------------+----------+--------------+-------------+
|   Column    |            Type             | Collation | Nullable |                 Default                 | Storage  | Stats target | Description |
+-------------+-----------------------------+-----------+----------+-----------------------------------------+----------+--------------+-------------+
| actor_id    | integer                     |           | not null | nextval('actor_actor_id_seq'::regclass) | plain    |              |             |
| first_name  | character varying(45)       |           | not null |                                         | extended |              |             |
| last_name   | character varying(45)       |           | not null |                                         | extended |              |             |
| last_update | timestamp without time zone |           | not null | now()                                   | plain    |              |             |
+-------------+-----------------------------+-----------+----------+-----------------------------------------+----------+--------------+-------------+
Indexes:
    "actor_pkey" PRIMARY KEY, btree (actor_id)
    "idx_actor_last_name" btree (last_name)
Referenced by:
    TABLE "film_actor" CONSTRAINT "film_actor_actor_id_fkey" FOREIGN KEY (actor_id) REFERENCES actor(actor_id) ON UPDATE CASCADE ON DELETE RESTRICT
Triggers:
    last_updated BEFORE UPDATE ON actor FOR EACH ROW EXECUTE FUNCTION last_updated()
Access method: heap

Il information_schema.columns Visualizza

Il information_schema.columns view contiene informazioni sulle colonne:

SELECT
    column_name,
    data_type,
    character_maximum_length AS max_length,
    character_octet_length AS octet_length
FROM
    information_schema.columns
WHERE
    table_schema = 'public' AND 
    table_name = 'actor' AND
    column_name = 'first_name';

Risultato:

+-------------+-------------------+------------+--------------+
| column_name |     data_type     | max_length | octet_length |
+-------------+-------------------+------------+--------------+
| first_name  | character varying |         45 |          180 |
+-------------+-------------------+------------+--------------+

Il pg_typeof() Funzione

Il pg_typeof() La funzione restituisce l'OID del tipo di dati del valore che gli viene passato.

Possiamo quindi utilizzarlo per ottenere il tipo di dati di una colonna passando la colonna al pg_typeof() funzione durante l'interrogazione della tabella:

SELECT pg_typeof(first_name)
FROM public.actor
LIMIT 1;

Risultato:

+-------------------+
|     pg_typeof     |
+-------------------+
| character varying |
+-------------------+

In PostgreSQL, character varying è il nome di varchar (in realtà, varchar è l'alias per character varying ).