auto_increment ใน Mysql

เกี่ยวกับ ปัญหาการใช้งาน การติดตั้ง ฐานข้อมูล MySql Oracle MSSQL ect...
การเขียน คำสั่ง SQL เพื่อดึกข้อมูล บอร์ดนี้ควรระบุโครงสร้างตารางของท่านในคำถามด้วยนะ

Moderator: mindphp

User avatar
lacoste
PHP Newbie
PHP Newbie
Posts: 3
Joined: 01/01/1970 7:00 am

auto_increment ใน Mysql

Postby lacoste » 25/10/2007 7:33 am

สมมุติว่าผมมี table หนึ่งอยู่ที่ mysql ชื่อ tb_product และ มีฟิลด์ id_prd int(11) เป็น primary key และ set ค่า เป็นแบบ auto_increment.

พอผมมีการ insert ข้อมูลเข้าไปที่ database เรื่อย ๆ ฟิลด์ id_prd ก็มีค่าเพิ่มขึ้นเรื่อยๆ สมมุติมี 10 record ก็จะมีค่าตั้งแต่ 1-10

หลังจากนั้น ผมต้องการลบ record ทั้งหมดทิ้ง

คำถามที่ 1 คือ ทำยังงัยจะให้ ฟิลด์ id_prd มีค่าเริ่มต้นเป็น 1 ใหม่ เหมือนเดิมครับ ??

เพราะถ้าเรา insert data เข้าไปใหม่ ฟิลด์ id_prd จะเริ่ม count ต่อไปเป็น 11 ครับ

คำถามที่ 2 คือ ถ้าลบเฉพาะ บาง record อย่างเช่น ผมไปลบ record ที่ 5 กับ 1 ทำอย่างไรให้มันเรียงลำดับใหม่ อัตโนมัติ โดยที่ ข้อมูลไม่สูญหายคับ (ไม่ทราบว่าอันนี้ทำได้ไหม หรือมีวิธีอื่นที่แนะนำคับ)

User avatar
mindphp
ผู้ดูแลระบบ MindPHP
ผู้ดูแลระบบ MindPHP
Posts: 21812
Joined: 22/09/2008 6:18 pm
Contact:

Postby mindphp » 25/10/2007 11:08 am

ใช้วิธี ลบ ข้อมูล อย่างไรครับ
ส่วน ข้อ สอง ตอนนี้ ยัง คิดมะออก ง่ะครับ mysql อย่างเดียว อาจทำไม่ได้
แต่ถ้า เขียน php เข้าไป update ทำได้ ครับ
ติดตาม VDO: http://www.youtube.com/c/MindphpVideoman
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: viewforum.php?f=29
รับอบรม และพัฒนาระบบ: viewtopic.php?f=6&t=2042

User avatar
lacoste
PHP Newbie
PHP Newbie
Posts: 3
Joined: 01/01/1970 7:00 am

Postby lacoste » 25/10/2007 4:38 pm

พอดีผมเพิ่งจะหัดเขียน php อะคับยังไม่บรรลุเท่าที่ควร คำถามที่ 2 เนี่ย ถ้าเราจะเพื่มการเขียนสคิปที่เป็น php เข้าไป update จะต้องทำอย่างไรคับ รบกวนอธิบายให้หน่อยได้ไหมคับ ขอบคุณล่วงหน้าคับ
:?
ขอให้ความดีจงสถิตอยู่กับตัวท่าน

User avatar
mindphp
ผู้ดูแลระบบ MindPHP
ผู้ดูแลระบบ MindPHP
Posts: 21812
Joined: 22/09/2008 6:18 pm
Contact:

Postby mindphp » 26/10/2007 1:29 am

ลอง คิดดู ก่อนนะครับ โดย เริ่ม จาก กำหนด ทั้ง หมดที่มีอยู่ ให้ เป็น 1 ให้ หมด ก่อน :-D :-D
แล้วไง ต่อ ลอง คิดดู :-D :-D :-D คิดหนุกๆ เดี๋ยว พรุ่งนี้ มาดูกัน อาจมีได้มากว่า หนึ่งงิธี :lol: :lol:
ติดตาม VDO: http://www.youtube.com/c/MindphpVideoman
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: viewforum.php?f=29
รับอบรม และพัฒนาระบบ: viewtopic.php?f=6&t=2042

User avatar
lacoste
PHP Newbie
PHP Newbie
Posts: 3
Joined: 01/01/1970 7:00 am

Postby lacoste » 26/10/2007 7:11 am

ไม่ใช่ไม่คิดนะคับ แต่คิดไม่ออกอะคับ ใช้คำสั่ง DEFINE() กำหนดค่าหรือเปล่า อย่างที่บอกคับ ยังไม่บรรลุซักเท่าไหร่ ถ้ายังงัยเดี๋ยวผมจะลองศึกษาดูอีกนิด ยังงัยก็ช่วยยกตัวอย่างซักนิดนะคับ ผมอาจจะเห็นภาพมากขึ้น

ขอบคุณที่ให้คำแนะนำคับ

<เพิ่งเริ่มต้นอ่านและศึกษาด้วยตัวเองมาไม่กี่เดือนคับ ยัง งงๆ อยู่ต้องขอ อภัยด้วยงับ T_T>

User avatar
mindphp
ผู้ดูแลระบบ MindPHP
ผู้ดูแลระบบ MindPHP
Posts: 21812
Joined: 22/09/2008 6:18 pm
Contact:

Postby mindphp » 26/10/2007 4:27 pm

ไม่ได้ ว่า อะไร ครับ:-D แค่ ชวนให้คิดหนุกๆ
วิธี คือ
1.update field นั้นให้ เป็น 1 ทั้งหมด ก่อน
2.เขียน php เพื่อดึงค่าทั้งหมด ของ field นั้นออกมา
3.วน loop ข้อมูลที่ได้ ออกมานั้น และ เอาค่า ใน loop ที่กำหนดให้ เพิ่มขึ้นที่ละ 1 ในแต่ ละ loop มาใส่ตัวแปลซักตัว
4.เอาตัวแปลนั้นสั่ง update table ใหม่ โดยระบุ เงือนไขที่ให้ ในการ update จาก field อื่นๆที่ไม่ซ้ำกัน :arrow:
ติดตาม VDO: http://www.youtube.com/c/MindphpVideoman
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: viewforum.php?f=29
รับอบรม และพัฒนาระบบ: viewtopic.php?f=6&t=2042


Return to “SQL - Database”

Who is online

Users browsing this forum: No registered users and 8 guests