วันพุธที่ 14 สิงหาคม พ.ศ. 2556

reset AUTO_INCREMENT (นับ id ใหม่ หรือ นับ id ต่อ โดยไม่กระโดดข้าม )

สมมติตารางคุณมี id ตั้งแต่ 1 ถึง 4 แต่พอลบตัว id=4 ทิ้ง ก็ให้สั่ง

sql  " ALTER TABLE NAMETABLE AUTO_INCREMENT=1 "

EX.
id  1,2,3,4,5,6,10 >> sql >> delete id  3 >> Insert 1 >> 1,2,4,5,6,10,11

EX.
id  1,2,3,4,5,6,10 >> sql >> delete id 10 >> Insert 1 >> 1,2,3,4,5,6,10

จะเป้นการกำหนด AUTO_INCREMENT เริ่มต้นที่ 1 ใหม่ จากนั้นหากคุณเพิ่มเข้า แถว ใหม่เข้าไปอีก id จะไปนับตัวสุดท้ายที่มีอยู่ที่ 3 และถัดไปจะเป็น 4 กล่าวคือ สั่ง SQL ข้างต้นทุกครั้ง ที่มีการสั่งลบแถวสุดท้ายออกไป


###############################################
reset AUTO_INCREMENT

คือ ลบ culumn id ทิ้งไป แล้วจากนั้นก็เพิ่ม column id เข้าไปใหม่ เป็นแบบ
auto_increment primary key นั่นก็คือ

step 1
ALTER IGNORE TABLE NAMETABLE DROP id;
id  1,2,3,4,5,6,10 >> delete field id
step 2
ALTER TABLEชื่อตาราง ADD id INT( 30 ) UNSIGNED AUTO_INCREMENT PRIMARY KEY FIRST;
sql >> id  1,2,3,4,5,6,7



 แต่ว่า ปกติไม่แนะนำให้ทำครับ ถ้าเกิด id ไป relative กับ table อื่นจะมั่วได้ แม้ในการใช้งานจริง สุดท้าย id มันอาจจะไม่เรียงต่อเนื่องสวยสักหน่อย แต่ user ก็ไม่ได้มาสนใจอะไรนักแล้ว ยกเว้นว่า id นั้น จะเป็น line_id เฉพาะตารางนั้นๆ ไม่เกี่ยวข้องกับตารางภายนอก

ไม่มีความคิดเห็น:

แสดงความคิดเห็น