การสร้าง ตาราง ในฐานข้อมูล MySQL ด้วย Navicat 8.0
ขั้นตอนดำเนินการ
1. เปิดหน้าต่าง [Table Design]
2. สร้างฟิลด์ที่ต้องการ
3. บันทึก
1.เปิดหน้าต่าง [Table design]
หลังจากเปิดโปรแกรม Navicat ขึ้นมา ให้กระทำการดังนี้
– ดับเบิลคลิก ที่ตัว Connection ที่ต้องการ เพื่อเชื่อมต่อเข้าสู่ MySQL ถ้าหากมีข้อสงสัยเกี่ยวกับการสร้าง Connection ให้อ่านจากบทความ การใช้ Navicat 8.0 จัดการฐานข้อมูล MySQL บน localhost
– ดับเบิลคลิก ฐานข้อมูล ที่ต้องการ เพื่อเปิดใช้งาน ฐานข้อมูล
– คลิกขวา ตรงคำว่า Tables เพื่อเรียกใช้งานเมนูลัด
– คลิก ตรงคำว่า New Table เพื่อเรียกหน้าต่าง [Table design] ( หน้าต่าง ออกแบบตาราง )
Name กำหนดชื่อฟิลด์
Type กำหนดชนิดฟิลด์
Length กำหนดขนาดฟิลด์
Decimals กำหนดจำนวนหลักตัวเลข หลังจุดทศนิยม ( กรณีที่เลือกฟิลด์เป็นชนิดตัวเลขทศนิยมเท่านั้น)
Allow Null ติ๊กถูก อนุญาติให้ฟิลด์นี้เป็นค่าว่างได้ ไม่ติ๊กก็เท่ากับตรงข้าม
ว่าง กำหนดฟิลด์เป็น ไพรมารีคีย์
สำหรับทูลบาร์ 3 ไอค่อนนี้
Add Field เพิ่มฟิลด์ใหม่ต่อท้ายฟิลด์ปัจจุบัน
Insert Field เพิ่มฟิลด์ใหม่เข้าไปก่อนหน้าฟิลด์ปัจจุบัน
Delete Field ลบฟิลด์ปัจจุบัน
*** ฟิลด์ปัจจุบัน ( ฟิลด์ที่ทำงานอยู่ ) คือฟิลด์ที่มีสัญลักษณ์ อยู่ด้านหน้า
3.บันทึก หลังจากกำหนดฟิลด์ต่างๆ พร้อมรายละเอียด ตามที่ต้องการเรียบร้อยแล้ว กดปุ่ม บันทึก โปรแกรมจะแสดงไดอะล็อก ให้ป้อน ชื่อตาราง
– Enter talbe name ป้อนชื่อตาราง
– กดปุ่ม OK
– ปิดหน้าต่าง [Table Design]
mojokolo says:
17/07/2552 at 17/07/2552
ผมอยากรู้วิธีการทำ foreign key ช่วยหน่อยครับ พอดีทำแล้วมันเกิด error
administrator says:
17/07/2552 at 17/07/2552
การจะทำ foreign key MySQL จะต้องเลือกใช้ engine แบบ InnoDB นะครับถึงจะทำได้ ถ้าคุณใช้ MyISAM หรือตัวอื่นละก้อจบข่าว เพราะ engine เหล่านั้นไม่ซัพพอร์ตการทำฟอร์เรนจ์คีย์ ว่าแต่ไม่ทราบว่ามันฟ้องว่าอะไร
mojokolo says:
21/07/2552 at 21/07/2552
คือ ผมไม่เคยใช้นะครับ แล้วก็ไม่ค่อยจะทราบเพียงแต่ ผมลงMySQL โดยใช้ Appserve อ่ะครับ แต่อยากจะทราบวิธีการทำ foreign key อ่า ยังไงก็ขอคำแนะนำด้วยครับ
administrator says:
21/07/2552 at 21/07/2552
อย่างที่ผมบอกไปด้านบนนั่นแหละครับว่า ตอนลง appserv ได้เปิดใช้ innodb หรือเปล่า และตอนสร้างตาราง ต้องใช้ engine innodb ถ้าหากว่าไม่เข้าใจเรื่อง engine ของ MySQL ลองหาในกูเกิลก่อนครับ
ตัว Navicat เป็นเพียงทูลตัวหนึ่งเท่านั้น
mojokolo says:
21/07/2552 at 21/07/2552
ครับๆ ตอนลง เลือก innodb ไว้แล้ว เพียงแต่ ผมสร้าง forign key ไม่เป็น แล้ว ondelete onupdate คืออะไร ช่วยอธิบาย
innodb เข้าใจว่าเป็นคนละชนิดกับ MyISAM ตอนลงเลือกไว้แล้ว
administrator says:
21/07/2552 at 21/07/2552
มันเออเร่อว่ายังไงครับ
ตอนสร้างฐานข้อมูล ตรง table type ให้เลือกเป็น InnoDB นะครับ
ส่วน ondelete กับ onupdate คือตัวเลือกที่จะให้กระทำเมื่อเกิดการ ลบ หรืออัปเดตแถว (ขึ้นอยู่กับสองตารางที่ทำความสัมพันธ์กัน มีข้อมูลอ้างอิงกันอยู่ ด้วยนะ) ซึ่งมีอยู่ 4 ตัวเลือกคือ
RESTRICT : ห้ามลบห้ามแก้ไข
NO ACTION : ไม่ต้องสนใจ
CASCADE : ทำการลบหรืออัปเดต ในตารางที่ทำความสัมพันธ์ไว้ ด้วย
SET NULL : ถ้าลบแถวในตารางนี้ ก็ให้เซตฟิลที่ทำความสัมพันธ์ไว้ในอีกตาราง เป็น ค่าว่าง
mojokolo says:
21/07/2552 at 21/07/2552
1075 incorrect table definition ; there can be only one auto column and it must be defined as a key
ลองใส่ตาม ฟอร์มที่ให้มา จะเขียน foreign ต้องมี ใน field ด้วยใช่ม่ะครับ
administrator says:
21/07/2552 at 21/07/2552
มันฟ้องว่า ฟิลด์ที่กำหนด auto number สามารถมีได้เพียงฟิลด์เดียวเท่านั้น และจะต้องกำหนดเป็น primary key
ไม่เกี่ยวอะไรกับการกำหนดฟอเรนจ์คีย์เลย คุณกำหนดฟิลด์ที่เป็น auto number หลายฟิลด์หรือเปล่า ลองตรวจสอบดู
kongtoonarmy says:
29/09/2552 at 29/09/2552
ไม่ทราบว่าเปลี่ยน type ของ table ได้หรือเปล่าครับ
สร้าง fk ไม่ได้เลย แต่ของผมไม่ขึ้น error ไรนะครับ
สร้างได้แล้วก็หายไปเลยไม่มีอะไรเกิดขึ้น พอลองใช้ก็ใช้ไม่ได้ครับ
mojokolo says:
29/09/2552 at 29/09/2552
ผมไม่ได้ใช้ Navicat ในการสร้างแล้วนะครับ แต่เข้าไปทำที่ ตัว localhost/phpmyadmin เลย มีให้กำหนดอยู่ เป็นการกำหนด รีเลชั่น สะดวกไหมไม่รู้ รู้แต่ว่า ทำได้เข้าใจง่ายด้วย
kongtoonarmy says:
30/09/2552 at 30/09/2552
ต้องใช้ engine innoDB ถึงทำ relation integrity ได้
ใช้ engine innoDB ไม่รู้ ว่า ขี่ช้างจับตั๊กแตน หรือเปล่าครับ
mojokolo says:
30/09/2552 at 30/09/2552
ครับ ต้องเป็น InnoDb ครับถึงจะสามารถสร้าง relation
555 says:
02/03/2553 at 02/03/2553
ยากอ่ะ