উত্তর:
pg_dump -t 'schema-name.table-name' --schema-only database-name
আরো তথ্য - এ ম্যানুয়াল ।
aschema
আপনি যে টেবিলটি ফেলে দিতে চান তার প্রকৃত স্কিমা নামটি প্রতিস্থাপন করুন । atable
আপনি যে টেবিলটি ফেলে দিতে চান তার প্রকৃত সারণির নামটি প্রতিস্থাপন করুন ।
pg_dump mydb -t '"TableName"' --schema-only
দিয়ে টেবিলের নামটি আবদ্ধ করতে হবে : - অন্যথায় pg_dump সারণির নামটি চিনতে পারবে না।
আমার সমাধানটি হ'ল পোস্টগ্র্রেস ডিবিতে PSE ব্যবহার করে -E বিকল্পটি ব্যবহার করে লগ ইন করুন:
psql -E -U username -d database
পিএসকিএল-তে পোস্টগ্র্রেস বর্ণনামূলক
সারণী বিবৃতি উত্পন্ন করতে ব্যবহৃত স্কিএলটি দেখতে নিম্নলিখিত কমান্ডগুলি চালান :
-- List all tables in the schema (my example schema name is public)
\dt public.*
-- Choose a table name from above
-- For create table of one public.tablename
\d+ public.tablename
এই বর্ণনাকারী কমান্ডগুলি চালনার পরে
প্রতিবেদিত স্কয়ারের উপর ভিত্তি করে আমি নীচের পিএলপিএসকিএল ফাংশনটি একসাথে রাখতে সক্ষম হয়েছি:
CREATE OR REPLACE FUNCTION generate_create_table_statement(p_table_name varchar)
RETURNS text AS
$BODY$
DECLARE
v_table_ddl text;
column_record record;
BEGIN
FOR column_record IN
SELECT
b.nspname as schema_name,
b.relname as table_name,
a.attname as column_name,
pg_catalog.format_type(a.atttypid, a.atttypmod) as column_type,
CASE WHEN
(SELECT substring(pg_catalog.pg_get_expr(d.adbin, d.adrelid) for 128)
FROM pg_catalog.pg_attrdef d
WHERE d.adrelid = a.attrelid AND d.adnum = a.attnum AND a.atthasdef) IS NOT NULL THEN
'DEFAULT '|| (SELECT substring(pg_catalog.pg_get_expr(d.adbin, d.adrelid) for 128)
FROM pg_catalog.pg_attrdef d
WHERE d.adrelid = a.attrelid AND d.adnum = a.attnum AND a.atthasdef)
ELSE
''
END as column_default_value,
CASE WHEN a.attnotnull = true THEN
'NOT NULL'
ELSE
'NULL'
END as column_not_null,
a.attnum as attnum,
e.max_attnum as max_attnum
FROM
pg_catalog.pg_attribute a
INNER JOIN
(SELECT c.oid,
n.nspname,
c.relname
FROM pg_catalog.pg_class c
LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace
WHERE c.relname ~ ('^('||p_table_name||')$')
AND pg_catalog.pg_table_is_visible(c.oid)
ORDER BY 2, 3) b
ON a.attrelid = b.oid
INNER JOIN
(SELECT
a.attrelid,
max(a.attnum) as max_attnum
FROM pg_catalog.pg_attribute a
WHERE a.attnum > 0
AND NOT a.attisdropped
GROUP BY a.attrelid) e
ON a.attrelid=e.attrelid
WHERE a.attnum > 0
AND NOT a.attisdropped
ORDER BY a.attnum
LOOP
IF column_record.attnum = 1 THEN
v_table_ddl:='CREATE TABLE '||column_record.schema_name||'.'||column_record.table_name||' (';
ELSE
v_table_ddl:=v_table_ddl||',';
END IF;
IF column_record.attnum <= column_record.max_attnum THEN
v_table_ddl:=v_table_ddl||chr(10)||
' '||column_record.column_name||' '||column_record.column_type||' '||column_record.column_default_value||' '||column_record.column_not_null;
END IF;
END LOOP;
v_table_ddl:=v_table_ddl||');';
RETURN v_table_ddl;
END;
$BODY$
LANGUAGE 'plpgsql' COST 100.0 SECURITY INVOKER;
ফাংশন ব্যবহার এখানে:
SELECT generate_create_table_statement('tablename');
আপনি যদি এই ফাংশনটি স্থায়ীভাবে স্থির রাখতে না চান তবে এখানে ড্রপ স্টেটমেন্টটি দেওয়া হল:
DROP FUNCTION generate_create_table_statement(p_table_name varchar);
NULL
আমার জন্য ফিরে আসে ... এবং স্কিমাটি কীভাবে পরিচালিত হয়? এটি কি সমস্ত স্কিমা থেকে নির্দিষ্ট নামের সাথে টেবিলের জন্য ক্রেট স্টেটমেন্ট ফেরত দেওয়া উচিত?
লিনাক্স কমান্ডলাইন থেকে পোস্টগ্রিসক্লিতে একটি টেবিলের জন্য তৈরি টেবিলের বিবৃতি তৈরি করুন:
এই বিবৃতিটি আমার জন্য বর্গক্ষেত্রের বিবৃতি তৈরি করে সারণিকে আউটপুট করে:
pg_dump -U your_db_user_name your_database -t your_table_name --schema-only
ব্যাখ্যা:
pg_dump আমাদের ডাটাবেস সম্পর্কে তথ্য পেতে সহায়তা করে। -U
ব্যবহারকারীর নাম। আমার প্যাগাডমিন ব্যবহারকারীর কোনও পাসওয়ার্ড সেট নেই, সুতরাং আমাকে একটি পাসওয়ার্ড রাখতে হবে না। -t
বিকল্প উপায়ে এক টেবিলে জন্য উল্লেখ করুন। --schema-only
মানে টেবিল সম্পর্কে কেবল তথ্য মুদ্রণ করা, এবং টেবিলের ডেটা নয়। আমি যে সঠিক আদেশটি ব্যবহার করছি তা এখানে:
pg_dump -U pgadmin kurz_prod -t fact_stock_info --schema-only
আপনি যদি pg_dump ব্যবহার না করে কোনও টেবিলের জন্য তৈরি বিবৃতিটি সন্ধান করতে চান তবে এই ক্যোয়ারীটি আপনার পক্ষে কাজ করতে পারে (আপনার টেবিলকে যা বলা হয় তার সাথে 'টেবিলের নাম পরিবর্তন করুন):
SELECT
'CREATE TABLE ' || relname || E'\n(\n' ||
array_to_string(
array_agg(
' ' || column_name || ' ' || type || ' '|| not_null
)
, E',\n'
) || E'\n);\n'
from
(
SELECT
c.relname, a.attname AS column_name,
pg_catalog.format_type(a.atttypid, a.atttypmod) as type,
case
when a.attnotnull
then 'NOT NULL'
else 'NULL'
END as not_null
FROM pg_class c,
pg_attribute a,
pg_type t
WHERE c.relname = 'tablename'
AND a.attnum > 0
AND a.attrelid = c.oid
AND a.atttypid = t.oid
ORDER BY a.attnum
) as tabledefinition
group by relname;
যখন পিএসকিএল থেকে সরাসরি ডাকা হয়, এটি করা কার্যকর:
\pset linestyle old-ascii
এছাড়াও, ফাংশন generate_create_table_statement এই থ্রেড খুব ভাল কাজ করে।
pg_dump
। সমস্ত একই +1
ডিন ট্যাডার কেবল দুর্দান্ত! টেবিলের সমস্ত প্রতিবন্ধকতাগুলি দেখানোর জন্য এবং টেবিলের নামে রেজিএক্সপ্যাক মাস্ক ব্যবহার করা সম্ভব করার জন্য আমি আপনার কোডটি কিছুটা পরিবর্তন করব।
CREATE OR REPLACE FUNCTION public.generate_create_table_statement(p_table_name character varying)
RETURNS SETOF text AS
$BODY$
DECLARE
v_table_ddl text;
column_record record;
table_rec record;
constraint_rec record;
firstrec boolean;
BEGIN
FOR table_rec IN
SELECT c.relname FROM pg_catalog.pg_class c
LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace
WHERE relkind = 'r'
AND relname~ ('^('||p_table_name||')$')
AND n.nspname <> 'pg_catalog'
AND n.nspname <> 'information_schema'
AND n.nspname !~ '^pg_toast'
AND pg_catalog.pg_table_is_visible(c.oid)
ORDER BY c.relname
LOOP
FOR column_record IN
SELECT
b.nspname as schema_name,
b.relname as table_name,
a.attname as column_name,
pg_catalog.format_type(a.atttypid, a.atttypmod) as column_type,
CASE WHEN
(SELECT substring(pg_catalog.pg_get_expr(d.adbin, d.adrelid) for 128)
FROM pg_catalog.pg_attrdef d
WHERE d.adrelid = a.attrelid AND d.adnum = a.attnum AND a.atthasdef) IS NOT NULL THEN
'DEFAULT '|| (SELECT substring(pg_catalog.pg_get_expr(d.adbin, d.adrelid) for 128)
FROM pg_catalog.pg_attrdef d
WHERE d.adrelid = a.attrelid AND d.adnum = a.attnum AND a.atthasdef)
ELSE
''
END as column_default_value,
CASE WHEN a.attnotnull = true THEN
'NOT NULL'
ELSE
'NULL'
END as column_not_null,
a.attnum as attnum,
e.max_attnum as max_attnum
FROM
pg_catalog.pg_attribute a
INNER JOIN
(SELECT c.oid,
n.nspname,
c.relname
FROM pg_catalog.pg_class c
LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace
WHERE c.relname = table_rec.relname
AND pg_catalog.pg_table_is_visible(c.oid)
ORDER BY 2, 3) b
ON a.attrelid = b.oid
INNER JOIN
(SELECT
a.attrelid,
max(a.attnum) as max_attnum
FROM pg_catalog.pg_attribute a
WHERE a.attnum > 0
AND NOT a.attisdropped
GROUP BY a.attrelid) e
ON a.attrelid=e.attrelid
WHERE a.attnum > 0
AND NOT a.attisdropped
ORDER BY a.attnum
LOOP
IF column_record.attnum = 1 THEN
v_table_ddl:='CREATE TABLE '||column_record.schema_name||'.'||column_record.table_name||' (';
ELSE
v_table_ddl:=v_table_ddl||',';
END IF;
IF column_record.attnum <= column_record.max_attnum THEN
v_table_ddl:=v_table_ddl||chr(10)||
' '||column_record.column_name||' '||column_record.column_type||' '||column_record.column_default_value||' '||column_record.column_not_null;
END IF;
END LOOP;
firstrec := TRUE;
FOR constraint_rec IN
SELECT conname, pg_get_constraintdef(c.oid) as constrainddef
FROM pg_constraint c
WHERE conrelid=(
SELECT attrelid FROM pg_attribute
WHERE attrelid = (
SELECT oid FROM pg_class WHERE relname = table_rec.relname
) AND attname='tableoid'
)
LOOP
v_table_ddl:=v_table_ddl||','||chr(10);
v_table_ddl:=v_table_ddl||'CONSTRAINT '||constraint_rec.conname;
v_table_ddl:=v_table_ddl||chr(10)||' '||constraint_rec.constrainddef;
firstrec := FALSE;
END LOOP;
v_table_ddl:=v_table_ddl||');';
RETURN NEXT v_table_ddl;
END LOOP;
END;
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;
ALTER FUNCTION public.generate_create_table_statement(character varying)
OWNER TO postgres;
এখন আপনি উদাহরণস্বরূপ, নিম্নলিখিত কোয়েরি করতে পারেন
SELECT * FROM generate_create_table_statement('.*');
যা এর মত ফলাফল:
CREATE TABLE public.answer (
id integer DEFAULT nextval('answer_id_seq'::regclass) NOT NULL,
questionid integer NOT NULL,
title character varying NOT NULL,
defaultvalue character varying NULL,
valuetype integer NOT NULL,
isdefault boolean NULL,
minval double precision NULL,
maxval double precision NULL,
followminmax integer DEFAULT 0 NOT NULL,
CONSTRAINT answer_pkey
PRIMARY KEY (id),
CONSTRAINT answer_questionid_fkey
FOREIGN KEY (questionid) REFERENCES question(id) ON UPDATE RESTRICT ON DELETE RESTRICT,
CONSTRAINT answer_valuetype_fkey
FOREIGN KEY (valuetype) REFERENCES answervaluetype(id) ON UPDATE RESTRICT ON DELETE RESTRICT);
প্রতিটি ব্যবহারকারীর টেবিলের জন্য।
আমি সবচেয়ে সহজ পদ্ধতিটি ভাবতে পারি এটি হ'ল পিজিএডমিন 3 ইনস্টল করা ( এটি এখানে পাওয়া যায় ) এবং এটি আপনার ডাটাবেস দেখতে ব্যবহার করুন। এটি স্বয়ংক্রিয়ভাবে একটি কোয়েরি তৈরি করবে যা প্রশ্নের সারণী তৈরি করবে।
আপনি যদি একবারে বিভিন্ন টেবিলের জন্য এটি করতে চান, আপনি একাধিকবার -t স্যুইচটি ব্যবহার করতে পেরেছেন (কেন কমা দ্বারা বিচ্ছিন্ন তালিকাটি কাজ করছে না তা বুঝতে আমাকে কিছুটা সময় লাগল)। এছাড়াও, অন্য কোনও মেশিনের পোস্টগ্রিস সার্ভারে আউটফিল বা পাইপের ফলাফল পাঠাতে কার্যকর হতে পারে
pg_dump -t table1 -t table2 database_name --schema-only > dump.sql
pg_dump -t table1 -t table2 database_name --schema-only | psql -h server_name database_name
এখানে একটি বিট উন্নত সংস্করণ shekwi এর কোয়েরি ।
এটি প্রাথমিক কী সীমাবদ্ধতা উত্পন্ন করে এবং অস্থায়ী সারণীগুলি পরিচালনা করতে সক্ষম:
with pkey as
(
select cc.conrelid, format(E',
constraint %I primary key(%s)', cc.conname,
string_agg(a.attname, ', '
order by array_position(cc.conkey, a.attnum))) pkey
from pg_catalog.pg_constraint cc
join pg_catalog.pg_class c on c.oid = cc.conrelid
join pg_catalog.pg_attribute a on a.attrelid = cc.conrelid
and a.attnum = any(cc.conkey)
where cc.contype = 'p'
group by cc.conrelid, cc.conname
)
select format(E'create %stable %s%I\n(\n%s%s\n);\n',
case c.relpersistence when 't' then 'temporary ' else '' end,
case c.relpersistence when 't' then '' else n.nspname || '.' end,
c.relname,
string_agg(
format(E'\t%I %s%s',
a.attname,
pg_catalog.format_type(a.atttypid, a.atttypmod),
case when a.attnotnull then ' not null' else '' end
), E',\n'
order by a.attnum
),
(select pkey from pkey where pkey.conrelid = c.oid)) as sql
from pg_catalog.pg_class c
join pg_catalog.pg_namespace n on n.oid = c.relnamespace
join pg_catalog.pg_attribute a on a.attrelid = c.oid and a.attnum > 0
join pg_catalog.pg_type t on a.atttypid = t.oid
where c.relname = :table_name
group by c.oid, c.relname, c.relpersistence, n.nspname;
table_name
সারণীর নাম উল্লেখ করতে প্যারামিটার ব্যবহার করুন ।
@ ভিকেকিপারের প্রতিক্রিয়ার ভিত্তিতে আরও বেশি পরিবর্তন। নির্দিষ্ট স্কিমা থেকে সারণী জিজ্ঞাসা করার সম্ভাবনা যুক্ত করা হয়েছে।
CREATE OR REPLACE FUNCTION public.describe_table(p_schema_name character varying, p_table_name character varying)
RETURNS SETOF text AS
$BODY$
DECLARE
v_table_ddl text;
column_record record;
table_rec record;
constraint_rec record;
firstrec boolean;
BEGIN
FOR table_rec IN
SELECT c.relname, c.oid FROM pg_catalog.pg_class c
LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace
WHERE relkind = 'r'
AND n.nspname = p_schema_name
AND relname~ ('^('||p_table_name||')$')
ORDER BY c.relname
LOOP
FOR column_record IN
SELECT
b.nspname as schema_name,
b.relname as table_name,
a.attname as column_name,
pg_catalog.format_type(a.atttypid, a.atttypmod) as column_type,
CASE WHEN
(SELECT substring(pg_catalog.pg_get_expr(d.adbin, d.adrelid) for 128)
FROM pg_catalog.pg_attrdef d
WHERE d.adrelid = a.attrelid AND d.adnum = a.attnum AND a.atthasdef) IS NOT NULL THEN
'DEFAULT '|| (SELECT substring(pg_catalog.pg_get_expr(d.adbin, d.adrelid) for 128)
FROM pg_catalog.pg_attrdef d
WHERE d.adrelid = a.attrelid AND d.adnum = a.attnum AND a.atthasdef)
ELSE
''
END as column_default_value,
CASE WHEN a.attnotnull = true THEN
'NOT NULL'
ELSE
'NULL'
END as column_not_null,
a.attnum as attnum,
e.max_attnum as max_attnum
FROM
pg_catalog.pg_attribute a
INNER JOIN
(SELECT c.oid,
n.nspname,
c.relname
FROM pg_catalog.pg_class c
LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace
WHERE c.oid = table_rec.oid
ORDER BY 2, 3) b
ON a.attrelid = b.oid
INNER JOIN
(SELECT
a.attrelid,
max(a.attnum) as max_attnum
FROM pg_catalog.pg_attribute a
WHERE a.attnum > 0
AND NOT a.attisdropped
GROUP BY a.attrelid) e
ON a.attrelid=e.attrelid
WHERE a.attnum > 0
AND NOT a.attisdropped
ORDER BY a.attnum
LOOP
IF column_record.attnum = 1 THEN
v_table_ddl:='CREATE TABLE '||column_record.schema_name||'.'||column_record.table_name||' (';
ELSE
v_table_ddl:=v_table_ddl||',';
END IF;
IF column_record.attnum <= column_record.max_attnum THEN
v_table_ddl:=v_table_ddl||chr(10)||
' '||column_record.column_name||' '||column_record.column_type||' '||column_record.column_default_value||' '||column_record.column_not_null;
END IF;
END LOOP;
firstrec := TRUE;
FOR constraint_rec IN
SELECT conname, pg_get_constraintdef(c.oid) as constrainddef
FROM pg_constraint c
WHERE conrelid=(
SELECT attrelid FROM pg_attribute
WHERE attrelid = (
SELECT oid FROM pg_class WHERE relname = table_rec.relname
AND relnamespace = (SELECT ns.oid FROM pg_namespace ns WHERE ns.nspname = p_schema_name)
) AND attname='tableoid'
)
LOOP
v_table_ddl:=v_table_ddl||','||chr(10);
v_table_ddl:=v_table_ddl||'CONSTRAINT '||constraint_rec.conname;
v_table_ddl:=v_table_ddl||chr(10)||' '||constraint_rec.constrainddef;
firstrec := FALSE;
END LOOP;
v_table_ddl:=v_table_ddl||');';
RETURN NEXT v_table_ddl;
END LOOP;
END;
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;
pg_dump -h XXXXXXXXXXX.us-west-1.rds.amazonaws.com -U anyuser -t tablename -s
এটি হ'ল তারতম্য যা আমার পক্ষে কাজ করে:
pg_dump -U user_viktor -h localhost unit_test_database -t floorplanpreferences_table --schema-only
তদ্ব্যতীত, আপনি যদি স্কিমা ব্যবহার করছেন তবে আপনাকে অবশ্যই এটি নির্দিষ্ট করতে হবে:
pg_dump -U user_viktor -h localhost unit_test_database -t "949766e0-e81e-11e3-b325-1cc1de32fcb6".floorplanpreferences_table --schema-only
আপনি একটি আউটপুট পাবেন যা আপনি আবার টেবিল তৈরি করতে ব্যবহার করতে পারবেন, কেবলমাত্র সেই আউটপুটটি পিএসএইচএল-এ চালান।
খাঁটি একক এসকিউএল-তে একটি সহজ সমাধান। আপনি ধারণাটি পান, আপনি এটি আরও বেশি বৈশিষ্ট্যগুলিতে প্রসারিত করতে পারেন যা আপনি দেখাতে চান।
with c as (
SELECT table_name, ordinal_position,
column_name|| ' ' || data_type col
, row_number() over (partition by table_name order by ordinal_position asc) rn
, count(*) over (partition by table_name) cnt
FROM information_schema.columns
WHERE table_name in ('pg_index', 'pg_tables')
order by table_name, ordinal_position
)
select case when rn = 1 then 'create table ' || table_name || '(' else '' end
|| col
|| case when rn < cnt then ',' else '); ' end
from c
order by table_name, rn asc;
আউটপুট:
create table pg_index(indexrelid oid,
indrelid oid,
indnatts smallint,
indisunique boolean,
indisprimary boolean,
indisexclusion boolean,
indimmediate boolean,
indisclustered boolean,
indisvalid boolean,
indcheckxmin boolean,
indisready boolean,
indislive boolean,
indisreplident boolean,
indkey ARRAY,
indcollation ARRAY,
indclass ARRAY,
indoption ARRAY,
indexprs pg_node_tree,
indpred pg_node_tree);
create table pg_tables(schemaname name,
tablename name,
tableowner name,
tablespace name,
hasindexes boolean,
hasrules boolean,
hastriggers boolean,
rowsecurity boolean);
এখানে একটি একক বিবৃতি দেওয়া হয়েছে যা একটি নির্দিষ্ট স্কিমায় সীমাবদ্ধতা সহ একটি একক টেবিলের জন্য ডিডিএল উত্পন্ন করবে।
SELECT 'CREATE TABLE ' || pn.nspname || '.' || pc.relname || E'(\n' ||
string_agg(pa.attname || ' ' || pg_catalog.format_type(pa.atttypid, pa.atttypmod) || coalesce(' DEFAULT ' || (
SELECT pg_catalog.pg_get_expr(d.adbin, d.adrelid)
FROM pg_catalog.pg_attrdef d
WHERE d.adrelid = pa.attrelid
AND d.adnum = pa.attnum
AND pa.atthasdef
),
'') || ' ' ||
CASE pa.attnotnull
WHEN TRUE THEN 'NOT NULL'
ELSE 'NULL'
END, E',\n') ||
coalesce((SELECT E',\n' || string_agg('CONSTRAINT ' || pc1.conname || ' ' || pg_get_constraintdef(pc1.oid), E',\n' ORDER BY pc1.conindid)
FROM pg_constraint pc1
WHERE pc1.conrelid = pa.attrelid), '') ||
E');'
FROM pg_catalog.pg_attribute pa
JOIN pg_catalog.pg_class pc
ON pc.oid = pa.attrelid
AND pc.relname = 'table_name'
JOIN pg_catalog.pg_namespace pn
ON pn.oid = pc.relnamespace
AND pn.nspname = 'schema_name'
WHERE pa.attnum > 0
AND NOT pa.attisdropped
GROUP BY pn.nspname, pc.relname, pa.attrelid;
এখানে কিছু সম্পাদনা সহ একটি প্রশ্ন রয়েছে,
select 'CREATE TABLE ' || a.attrelid::regclass::text || '(' ||
string_agg(a.attname || ' ' || pg_catalog.format_type(a.atttypid,
a.atttypmod)||
CASE WHEN
(SELECT substring(pg_catalog.pg_get_expr(d.adbin, d.adrelid) for 128)
FROM pg_catalog.pg_attrdef d
WHERE d.adrelid = a.attrelid AND d.adnum = a.attnum AND a.atthasdef) IS NOT NULL THEN
' DEFAULT '|| (SELECT substring(pg_catalog.pg_get_expr(d.adbin, d.adrelid) for 128)
FROM pg_catalog.pg_attrdef d
WHERE d.adrelid = a.attrelid AND d.adnum = a.attnum AND a.atthasdef)
ELSE
'' END
||
CASE WHEN a.attnotnull = true THEN
' NOT NULL'
ELSE
'' END,E'\n,') || ');'
FROM pg_catalog.pg_attribute a join pg_class on a.attrelid=pg_class.oid
WHERE a.attrelid::regclass::varchar =
'TABLENAME_with_or_without_schema'
AND a.attnum > 0 AND NOT a.attisdropped and pg_class.relkind='r'
group by a.attrelid;
প্যাগাডমিনআইআই ডাটাবেসে >> স্কিমা >> টেবিল >> 'আপনার টেবিল' >> স্ক্রিপ্টগুলিতে ডান ক্লিক করুন >> 'যে কোনও একটি নির্বাচন করুন (তৈরি করুন, সন্নিবেশ করুন, আপডেট করুন, মুছুন ..)'
pg_dump mydb -t mytable --schema-only
।