AUTO_INCREMENT 2 column ได้ใหมครับ

เริ่มโดย affsom, 19 พฤษภาคม 2017, 03:30:44

หัวข้อก่อนหน้า - หัวข้อถัดไป

0 สมาชิก และ 1 ผู้มาเยือน กำลังดูหัวข้อนี้

affsom

คือตารางผมกำหนด PRIMARY KEY 2 ตัว
แล้วตัวแรกจะ AUTO_INCREMENT ปกติ แต่อีกตัวต้องการให้ AUTO_INCREMENT เมื่อมีการใส่ค่าลงไปใน field ของ columnนั้น เช่น
1.มีการเพิ่มสมาชิก member_id สมาชิกจะ AUTO_INCREMENT ตามปกติ [member_advance_id จะยังไม่ถูกใส่ค่าลงไปมีค่าเป็น null ประมาณนี้]
2.เมื่อสมาชิกทำการสมัครเป็นสมาชิกพิเศษ member_advance_id
  ต้องการให้ member_advance_id นั้น AUTO_INCREMENT ต่อจาก member_advance_id ล่าสุด
สมมุติว่ามีแค่ตารางเดียวนะครับ
พอทำได้ใหมครับ เพราะที่รู้มา AUTO_INCREMENT จะกำหนดให้ได้กับแค่columnเดียว
ถ้ากำหนดไม่ได้ ค่อยใช้วิธีแยกตารางเอา แต่ไม่อยากไปไล่แก้โค๊ดเพราะต้องการให้ quary แค่แถวเดียวครับ

:wanwan044: :wanwan044: :wanwan044:

seopaper

#1
 :P
ก้อคงต้องเขียน ตัวค้นหา advance id ล่าสุดล่ะครับ
เปรียบเทียบเอาครับ ประมาณนี้
คงพอได้...

ไม่ก้อ create view มาเปรียบเทียบ แล้วก้อ drop ไป. ถ้าข้อมูลแยอะมากก้อไม่ควรใช้วิธีนี้ ...

ดูตัวอย่างในนี้ได้ อ่ะครับ
https://dba.stackexchange.com/questions/35449/how-to-use-2-auto-increment-columns-in-mysql-phpmyadmin
fontethailand

powerbeer

อ่านดูแล้ว เหมือนจะออกแบบผิดนะครับ
ทำไมต้องมีสองคีย์

ระบบฐานข้อมูลข้อสอบและห้องสอบออนไลน์ เป็นระบบที่มุ่งเน้นให้อาจารย์สามารถออกข้อสอบออนไลน์ได้ทุกที่ทุกเวลา ผู้เข้าสอบสามารถเข้าสอบได้จากทุกที่ โดยมีฟังก์ชั่นการทำงานที่หลายรูปแบบ

*Link Removed*

devnow

อ้างถึงจาก: affsom ใน 19 พฤษภาคม 2017, 03:30:44
คือตารางผมกำหนด PRIMARY KEY 2 ตัว
แล้วตัวแรกจะ AUTO_INCREMENT ปกติ แต่อีกตัวต้องการให้ AUTO_INCREMENT เมื่อมีการใส่ค่าลงไปใน field ของ columnนั้น เช่น
1.มีการเพิ่มสมาชิก member_id สมาชิกจะ AUTO_INCREMENT ตามปกติ [member_advance_id จะยังไม่ถูกใส่ค่าลงไปมีค่าเป็น null ประมาณนี้]
2.เมื่อสมาชิกทำการสมัครเป็นสมาชิกพิเศษ member_advance_id
  ต้องการให้ member_advance_id นั้น AUTO_INCREMENT ต่อจาก member_advance_id ล่าสุด
สมมุติว่ามีแค่ตารางเดียวนะครับ
พอทำได้ใหมครับ เพราะที่รู้มา AUTO_INCREMENT จะกำหนดให้ได้กับแค่columnเดียว
ถ้ากำหนดไม่ได้ ค่อยใช้วิธีแยกตารางเอา แต่ไม่อยากไปไล่แก้โค๊ดเพราะต้องการให้ quary แค่แถวเดียวครับ

:wanwan044: :wanwan044: :wanwan044:

ต้องแยก 2 ตารางครับ  ปกติ ทำ auto increment 2 column ได้ แต่ต้องไม่มีเงื่อนไข แบบที่ถามครับ คือเพิ่มอัตโนมัติเลยเมื่อมีการบันทึก
แต่ถ้ามีความเกี่ยวเนื่องกันระหว่าง 2 field ควรแยกตารางครับ
รับซื้อ แฟนเพจ เว็บไซต์ เว็บเล็กเว็บน้อยก็รับ PM มาเสนอได้ครับ

โปรโมชั่น ส่วนลด สินค้าราคาถูก รวมไว้ที่นี่ โครตรโปรดอทคอม

goragod

ไม่ได้ครับ

เนื่องจาก auto_increment ต้องเป้น primary ด้วย มันจึงเป็นไปไม่ได้ (primary จะมีได้แค่อันเดียว)

ในกรณีของคำถาม member_advance_id ควรเก็บเฉพาะสถานะ advance เท่านั้น ยกตัวอย่าง 0 กรณีไม่ได้เป็น และ 1 หรือมากกว่า 0 ในกรณีที่เป็น

เพิ่มเติมอีกเล็กน้อย ในกรณีที่ member_advance_id ต้องไปผูกกับตารางอื่น ผมแนะนำให้เพิ่มข้อมูลตารางอื่นก่อน แล้วนำ id ของตารางนั้นมาเป็น member_advance_id ของตารางสมาชิก