!! การสร้างตารางนี้สร้างขึ้นมาสำหรับเป็นตัวอย่างในการเขียน SQL บน PostgreSQL เท่านั้น
จากบทความเรื่องการ Create Table ซึ่งเป็นการเพิ่มตารางอย่างง่าย และ การ Create Table แบบ INHERITS
เป็นการเพิ่มตารางโดยทำการสืบทอดคุณสมบัติของตารางมา
ในบทความนี้ จะกล่าวถึงการสร้างตารางด้วยวิธีการ คัดลอกคอลัมน์จากตารางที่มีอยู่แล้ว
ซึ่งจะเป็นการเลือกคัดลอกมาเพียงบางคอลัมน์ ไม่ใช่การยกมาทั้งหมดเหมือนการ inherits
ตัวอย่างการสร้างตาราง
วิธีการที่ 1 : การคัดลอกคอลัมน์มาทั้งหมด
โค้ด: เลือกทั้งหมด
CREATE TABLE table_name
AS (SELECT * FROM table_name_old);
table_name : ชื่อตารางที่ต้องการสร้าง
* : เลือกคอลัมน์มาทั้งหมด
table_name_old : ชื่อตารางที่ต้องการคัดลอกคอลัมน์มา
โค้ด :
โค้ด: เลือกทั้งหมด
CREATE TABLE z_testcreatetable_partner
AS (SELECT * FROM res_partner);
โค้ด: เลือกทั้งหมด
CREATE TABLE z_testcreatetable_partner
(
id integer,
name character varying(128),
lang character varying(64),
company_id integer,
create_uid integer,
create_date timestamp without time zone,
write_date timestamp without time zone,
write_uid integer,
comment text,
ean13 character varying(13),
color integer,
image bytea,
use_parent_address boolean,
active boolean,
street character varying(128),
supplier boolean,
city character varying(128),
user_id integer,
zip character varying(24),
title integer,
function character varying(128),
country_id integer,
parent_id integer,
employee boolean,
type character varying,
email character varying(240),
vat character varying(32),
website character varying(64),
fax character varying(64),
street2 character varying(128),
phone character varying(64),
credit_limit double precision,
date date,
tz character varying(64),
customer boolean,
image_medium bytea,
mobile character varying(64),
ref character varying(64),
image_small bytea,
birthdate character varying(64),
is_company boolean,
state_id integer
)
WITH (
OIDS=FALSE
);
ALTER TABLE z_testcreatetable_partner
OWNER TO openpg;
จากภาพตัวอย่างที่ 1 เป็นการสร้างตารางที่มีชื่อว่า "z_testcreatetable_partner"
โดยตาราง z_testcreatetable_partner จะทำการคัดลอกคอลัมน์ภายในตาราง "res_partner" มาทั้งหมด
จากคำสั่ง AS (SELECT * FROM table_name_old)
เครื่องหมาย * คือคำสั่งให้เลือกทั้งหมด
วิธีการที่ 2 : การคัดลอกมาเพียงบางคอลัมน์
โค้ด: เลือกทั้งหมด
CREATE TABLE table_name
AS (SELECT column_1, column2, ... column_n
FROM table_name_old);
table_name : ชื่อตารางที่ต้องการสร้าง
column_1....n : คอลัมน์ที่ต้องการคัดลอกมา
table_name_old : ชื่อตารางที่ต้องการคัดลอกคอลัมน์มา
โค้ด :
โค้ด: เลือกทั้งหมด
CREATE TABLE z_testcreatetable_cpartner
AS (SELECT
id,
name,
lang,
title,
email,
mobile,
birthdate,
state_id FROM res_partner) ;
โค้ด: เลือกทั้งหมด
CREATE TABLE z_testcreatetable_cpartner
(
id integer,
name character varying(128),
lang character varying(64),
title integer,
email character varying(240),
mobile character varying(64),
birthdate character varying(64),
state_id integer
)
WITH (
OIDS=FALSE
);
ALTER TABLE z_testcreatetable_cpartner
OWNER TO openpg;
ในภาพตัวอย่างที่ 2 เป็นการสร้างตาราง "z_testcreatetable_cpartner" วิธีการคล้ายกับการสร้างตาราง "z_testcreatetable_partner"
เพียงแต่ว่า จะทำการเลือกคัดลอกมาเพียงบางคอลัมน์ ในตาราง "z_testcreatetable_cpartner" นี้
เลือกทำการคัดลอกมาเพียงคอลัมร์ที่ชื่อว่า id, name, lang, title, email, mobile, birthdate และ state_id เท่านั้นไม่ได้คัดลอกมาทั้งหมด
ศึกษาเพิ่มเติมได้ที่ :
www.postgresqltutorial.com Eng.ver
www.postgresql.org Eng.ver