การสร้าง ตาราง ในฐานข้อมูล 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]











13 Comments
ผมอยากรู้วิธีการทำ foreign key ช่วยหน่อยครับ พอดีทำแล้วมันเกิด error
การจะทำ foreign key MySQL จะต้องเลือกใช้ engine แบบ InnoDB นะครับถึงจะทำได้ ถ้าคุณใช้ MyISAM หรือตัวอื่นละก้อจบข่าว เพราะ engine เหล่านั้นไม่ซัพพอร์ตการทำฟอร์เรนจ์คีย์ ว่าแต่ไม่ทราบว่ามันฟ้องว่าอะไร
คือ ผมไม่เคยใช้นะครับ แล้วก็ไม่ค่อยจะทราบเพียงแต่ ผมลงMySQL โดยใช้ Appserve อ่ะครับ แต่อยากจะทราบวิธีการทำ foreign key อ่า ยังไงก็ขอคำแนะนำด้วยครับ
อย่างที่ผมบอกไปด้านบนนั่นแหละครับว่า ตอนลง appserv ได้เปิดใช้ innodb หรือเปล่า และตอนสร้างตาราง ต้องใช้ engine innodb ถ้าหากว่าไม่เข้าใจเรื่อง engine ของ MySQL ลองหาในกูเกิลก่อนครับ
ตัว Navicat เป็นเพียงทูลตัวหนึ่งเท่านั้น
ครับๆ ตอนลง เลือก innodb ไว้แล้ว เพียงแต่ ผมสร้าง forign key ไม่เป็น แล้ว ondelete onupdate คืออะไร ช่วยอธิบาย
innodb เข้าใจว่าเป็นคนละชนิดกับ MyISAM ตอนลงเลือกไว้แล้ว
มันเออเร่อว่ายังไงครับ
ตอนสร้างฐานข้อมูล ตรง table type ให้เลือกเป็น InnoDB นะครับ
ส่วน ondelete กับ onupdate คือตัวเลือกที่จะให้กระทำเมื่อเกิดการ ลบ หรืออัปเดตแถว (ขึ้นอยู่กับสองตารางที่ทำความสัมพันธ์กัน มีข้อมูลอ้างอิงกันอยู่ ด้วยนะ) ซึ่งมีอยู่ 4 ตัวเลือกคือ
RESTRICT : ห้ามลบห้ามแก้ไข
NO ACTION : ไม่ต้องสนใจ
CASCADE : ทำการลบหรืออัปเดต ในตารางที่ทำความสัมพันธ์ไว้ ด้วย
SET NULL : ถ้าลบแถวในตารางนี้ ก็ให้เซตฟิลที่ทำความสัมพันธ์ไว้ในอีกตาราง เป็น ค่าว่าง
1075 incorrect table definition ; there can be only one auto column and it must be defined as a key
ลองใส่ตาม ฟอร์มที่ให้มา จะเขียน foreign ต้องมี ใน field ด้วยใช่ม่ะครับ
มันฟ้องว่า ฟิลด์ที่กำหนด auto number สามารถมีได้เพียงฟิลด์เดียวเท่านั้น และจะต้องกำหนดเป็น primary key
ไม่เกี่ยวอะไรกับการกำหนดฟอเรนจ์คีย์เลย คุณกำหนดฟิลด์ที่เป็น auto number หลายฟิลด์หรือเปล่า ลองตรวจสอบดู
ไม่ทราบว่าเปลี่ยน type ของ table ได้หรือเปล่าครับ
สร้าง fk ไม่ได้เลย แต่ของผมไม่ขึ้น error ไรนะครับ
สร้างได้แล้วก็หายไปเลยไม่มีอะไรเกิดขึ้น พอลองใช้ก็ใช้ไม่ได้ครับ
ผมไม่ได้ใช้ Navicat ในการสร้างแล้วนะครับ แต่เข้าไปทำที่ ตัว localhost/phpmyadmin เลย มีให้กำหนดอยู่ เป็นการกำหนด รีเลชั่น สะดวกไหมไม่รู้ รู้แต่ว่า ทำได้เข้าใจง่ายด้วย
ต้องใช้ engine innoDB ถึงทำ relation integrity ได้
ใช้ engine innoDB ไม่รู้ ว่า ขี่ช้างจับตั๊กแตน หรือเปล่าครับ
ครับ ต้องเป็น InnoDb ครับถึงจะสามารถสร้าง relation
ยากอ่ะ