PostgreSQLでテーブルのCREATE文を確認する

こんにちは、さるまりんです。

テーブルのCREATE文を確認。前回はこのMySQLでの方法をメモしました。

SHOW CREATE TABLE [テーブル名];

です。

これをPostgreSQLでやりたいのですが、SHOW CREATE TABLE文はPostgreSQLには存在しません。

ではどうするか?

PostgreSQLのクライアントプログラムpg_dumpを使います。

pg_dump -t [テーブル名] -s

これで同様のことができます。

ユーザー名、ホスト、データベース名も一緒に指定するには↓のように記述します。

pg_dump -U [ユーザー名] -h [ホスト] [データベース名] -t [テーブル名] -s

実行例です。

$ pg_dump -U salu -h XXX.XXX.XXX.XXX mydb -t mails -s
Password: 
--
-- PostgreSQL database dump
--

-- Dumped from database version 9.2.24
-- Dumped by pg_dump version 13.3

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 = '';

--
-- Name: mails; Type: TABLE; Schema: public; Owner: salu
--

CREATE TABLE public.mails (
    mail_id integer NOT NULL,
    subject character varying(120) NOT NULL,
    body text NOT NULL
);


ALTER TABLE public.mails OWNER TO salu;

--
-- Name: mails mails_pkey; Type: CONSTRAINT; Schema: public; Owner: salu
--

ALTER TABLE ONLY public.mails
    ADD CONSTRAINT mails_pkey PRIMARY KEY (mail_id);


--
-- PostgreSQL database dump complete
--

テーブルのオーナーや主キーの制約まで出力してくれています。

pg_dumpはデータベースをバックアップするために使われるコマンドですが、ちょっと確認というこういう使い方もできますね。

読んでくださってありがとうございました。

それではまた!