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
).