PostgreSQL | Как получить код конфигурации одной таблицы? — efim360.ru

PostgreSQL | Как получить код конфигурации одной таблицы?

Какой командой была создана одна таблица в PostgreSQL?

Если вы не создавали базу данных над которой сейчас работаете, то 100% вероятности вам понадобится просматривать все особенности некоторых таблиц.

Вам нужно будет понимать структуру таблицы, какие в ней имеются столбцы, каких они типов, какие в таблице есть ограничения и как они называются. Какие у этой таблицы есть связи с другими таблицами и так далее.

Все эти вопросы приводят к тому, что хотелось бы просто получить SQL-код команды, из-за которой появилась данная таблица.

Сделать это можно через терминальный клиент psql в Debian:

pg_dump -t 'схема_данных.название_твоей_таблицы' --schema-only название_базы_данных

Данная команда выведет в консоль всю необходимую информацию в виде SQL-кода, которым можно создать данную таблицу. Сами данные этой таблицы не будут отображены.

pg_dump -t 'b.t_d_8411' --schema-only sdb

Пример работы:

--

-- PostgreSQL database dump

--

 

-- Dumped from database version 11.16 (Debian 11.16-1.pgdg100+1)

-- Dumped by pg_dump version 11.16 (Debian 11.16-1.pgdg100+1)

 

SET statement_timeout = 0;

SET lock_timeout = 0;

SET idle_in_transaction_session_timeout = 0;

SET client_encoding = 'UTF8';

SET standard_conforming_strings = on;

SELECT pg_catalog.set_config('search_path', '', false);

SET check_function_bodies = false;

SET xmloption = content;

SET client_min_messages = warning;

SET row_security = off;

 

SET default_tablespace = '';

 

SET default_with_oids = false;

 

--

-- Name: t_d_8411; Type: TABLE; Schema: b; Owner: postgres

--

 

CREATE TABLE b.t_d_8411 (

    id bigint NOT NULL,

    idp bigint NOT NULL,

    datecreate timestamp without time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,

    datecheck timestamp without time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,

    pagestatus bigint DEFAULT 0

);

 

ALTER TABLE b.t_d_8411 OWNER TO postgres;

 

--

-- Name: t_d_8411_id_seq; Type: SEQUENCE; Schema: b; Owner: postgres

--

 

ALTER TABLE b.t_d_8411 ALTER COLUMN id ADD GENERATED ALWAYS AS IDENTITY (

    SEQUENCE NAME b.t_d_8411_id_seq

    START WITH 1

    INCREMENT BY 1

    NO MINVALUE

    NO MAXVALUE

    CACHE 1

);

 

--

-- Name: t_d_8411 t_d_8411_idp_key; Type: CONSTRAINT; Schema: b; Owner: postgres

--

 

ALTER TABLE ONLY b.t_d_8411

    ADD CONSTRAINT t_d_8411_idp_key UNIQUE (idp);

 

--

-- Name: t_d_8411 t_d_8411_pkey; Type: CONSTRAINT; Schema: b; Owner: postgres

--

 

ALTER TABLE ONLY b.t_d_8411

    ADD CONSTRAINT t_d_8411_pkey PRIMARY KEY (id);

 

--

-- PostgreSQL database dump complete

--

 

 

По этому коду уже можно многое понять про данную таблицу. Мы отчётливо видим названия столбцов данной таблицы. Мы понимаем какие типы данных есть у этих столбцов.

Мы видим того пользователя, который назначен владельцем.

Далее отображается информация о последовательностях, которые назначены для данной таблицы.

И после этого отображается информация об ограничениях данной таблицы.

 

Кроме консоли, мы можем вывести SQL-код таблицы в файл. Для этого нужно добавить угловую скобку (стрелочку) и написать имя файла, в который хотим сбросить:

Данная команда выведет в файл всю необходимую информацию в виде SQL-кода, которым можно создать данную таблицу. Сами данные этой таблицы не будут отображены.

pg_dump -t 'b.t_d_8411' --schema-only sdb > t_d_8411_dump.sql

По умолчанию в Debian файл будет создан в директории:

/var/lib/postgresql

 

Как ещё можно получить код конфигурации таблицы?

PostgreSQL может иметь графическую оболочку, которая называется pgAdmin 4. Этот инструмент опциональный и не идёт в базовой комплектации с СУБД.

На вкладке SQL в нём можно увидеть состав того или иного объекта базы данных. Для этого выделяете нужный объект в левом меню и вкладка отображает его код конфигурации.

Например;

Вкладка SQL кодом конфигурации для таблицы t1 из схемы test в PostgreSQL
Вкладка SQL кодом конфигурации для таблицы t1 из схемы test в PostgreSQL

 

Информационные ссылки

Официальный сайт WEB-оболочки pgAdmin - https://www.pgadmin.org

Официальный сайт СУБД PostgreSQL - https://www.postgresql.org