नया पोस्टग्रैसक्यूएल (डॉक्स के अनुसार 8.3 के बाद से) "INCLUDING INDEXES" का उपयोग कर सकता है:
version
PostgreSQL 8.3.7 on x86_64-pc-linux-gnu, compiled by GCC cc (GCC) 4.2.4 (Ubuntu 4.2.4-1ubuntu3)
(1 row)
जैसा कि आप देख सकते हैं कि मैं 8.3 पर परीक्षण कर रहा हूं।
अब, तालिका बनाते हैं:
NOTICE: CREATE TABLE will create implicit sequence "x1_id_seq" for serial column "x1.id"
NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "x1_pkey" for table "x1"
NOTICE: CREATE TABLE / UNIQUE will create implicit index "x1_x_key" for table "x1"
CREATE TABLE
और देखें कि यह कैसा दिखता है:
Table "public.x1"
Column | Type | Modifiers
id | integer | not null default nextval('x1_id_seq'::regclass)
x | text |
Indexes:
"x1_pkey" PRIMARY KEY, btree (id)
"x1_x_key" UNIQUE, btree (x)
अब हम संरचना की नकल कर सकते हैं:
NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "x2_pkey" for table "x2"
NOTICE: CREATE TABLE / UNIQUE will create implicit index "x2_x_key" for table "x2"
CREATE TABLE
और संरचना की जाँच करें:
Table "public.x2"
Column | Type | Modifiers
id | integer | not null default nextval('x1_id_seq'::regclass)
x | text |
Indexes:
"x2_pkey" PRIMARY KEY, btree (id)
"x2_x_key" UNIQUE, btree (x)
यदि आप PostgreSQL प्री-8.3 का उपयोग कर रहे हैं, तो आप बस 1 टेबल निर्दिष्ट करने, डंप में टेबल का नाम बदलने और इसे फिर से लोड करने के लिए "-t" विकल्प के साथ pg_dump का उपयोग कर सकते हैं:
=> pg_dump -t x2 | sed 's/x2/x3/g' | psql
SET
SET
SET
SET
SET
SET
SET
SET
CREATE TABLE
ALTER TABLE
ALTER TABLE
ALTER TABLE
और अब तालिका है:
Table "public.x3"
Column | Type | Modifiers
id | integer | not null default nextval('x1_id_seq'::regclass)
x | text |
Indexes:
"x3_pkey" PRIMARY KEY, btree (id)
"x3_x_key" UNIQUE, btree (x)