PostgreSQL : คำสั่ง SQL การ Create Table แบบ INHERITS

PostgreSQL แชร์ความรู้เกี่ยวกับ PostgreSQL การใช้งาน ฟังก์ชั่นต่างๆ การเขียน SQL แบบ PGSQL

Moderator: mindphp, ผู้ดูแลกระดาน

thitikorn_lp
PHP Super Hero Member
PHP Super Hero Member
โพสต์: 677
ลงทะเบียนเมื่อ: 28/07/2014 10:24 am

PostgreSQL : คำสั่ง SQL การ Create Table แบบ INHERITS

โพสต์ที่ยังไม่ได้อ่าน โดย thitikorn_lp »

Create Table with INHERITS ( การสร้างตารางด้วยการสืบทอดตาราง )

!! การสร้างตารางนี้สร้างขึ้นมาสำหรับเป็นตัวอย่างในการเขียน SQL บน PostgreSQL เท่านั้น

  ในบทความเรื่อง PostgreSQL : คำสั่ง SQL การ Create Table นั้น เป็นการสร้างตารางแบบพื้นฐาน ซึ่งจะทำการกำหนดชื่อตาราง ชื่อคอลัมน์ที่ต้องการ และค่าต่างๆ เอง

  ส่วนในบทความนี้ จะเป็นการสร้างตารางโดยวิธี INHERITS หรือ การสืบทอดคุณสมบัติ

INHERITS คืออะไร?
“Inherits” หรือ “Inheritance” คือการสืบทอด Class จาก Class ต้นฉบับไปยัง Class ใหม่ โดยจะทำการ Copy สิ่งที่อยู่ใน Class ต้นฉบับไปยัง Class ใหม่ทั้งหมด อธิบายตามภาษาบ้านๆ ก็คือ การสืบทอดคุณสมบัติจากแม่ไปสู่ลูก

โค้ด: เลือกทั้งหมด

CREATE TABLE table_name (
  column_name TYPE column_constraint,
  table_constraint table_constraint
) INHERITS (existing_table_name);
อธิบายคำสั่ง
table_name     :  ชื่อตาราง
column_name    :  ขื่อคอลัมน์
TYPE          :  ชนิดของคอลัมน์
column_constraint  :  ข้อจำกัดของคอลัมน์
table_constraint   : ข้อจำกัดของตาราง
INHERITS        :  คำสั่งการสืบทอด
existing_table_name :  ชื่อตารางที่ต้องการสืบทอดมา

ตัวอย่างการสร้างตาราง

โค้ด: เลือกทั้งหมด

CREATE TABLE z_testcreatetable_inherit(
  in_id serial PRIMARY KEY,
  in_name VARCHAR (255) UNIQUE NOT NULL
) INHERITS (z_testcreatetable);
ตัวอย่าง :
CREATE Table inherit.jpg
CREATE Table inherit.jpg (287.82 KiB) Viewed 1728 times
ผลที่ได้ :

โค้ด: เลือกทั้งหมด

CREATE TABLE z_testcreatetable_inherit
(
-- Inherited from table z_testcreatetable:  id character varying(5) NOT NULL,
-- Inherited from table z_testcreatetable:  username character varying(50) NOT NULL,
-- Inherited from table z_testcreatetable:  pass character varying(50) NOT NULL,
-- Inherited from table z_testcreatetable:  email character varying(355) NOT NULL,
       in_id serial NOT NULL,
       in_name character varying(255) NOT NULL,
  CONSTRAINT z_testcreatetable_inherit_pkey PRIMARY KEY (in_id),
  CONSTRAINT z_testcreatetable_inherit_  in_name_key  UNIQUE (in_name)
)
INHERITS (z_testcreatetable)
WITH (
  OIDS=FALSE
);
ALTER TABLE z_testcreatetable_inherit
  OWNER TO openpg;
คำอธิบาย :
ในตัวอย่าง เป็นการสร้างตารางที่มีชื่อว่า "z_testcreatetable_inherit" โดยทำการสืบทอดคุณสมบัติของตาราง "z_testcreatetable" มาใช้โดยคำสั่ง Inherited from table z_testcreatetable: ซึ่งจะนำ คอลัมน์ id, username, pass และ email มาโดยที่ผู้ใช้ไม่ต้องพิมพ์เอง




ศึกษาเพิ่มเติมได้ที่ :
www.postgresqltutorial.com Eng.ver
www.postgresql.org Eng.ver
รูปภาพ
  • Similar Topics
    ตอบกลับ
    แสดง
    โพสต์ล่าสุด

ผู้ใช้งานขณะนี้

สมาชิกกำลังดูบอร์ดนี้: Google [Bot] และบุคลทั่วไป 76