บางตารางที่จะย้ายระบบอาจจะไม่มี primary key เพื่อให้ถูกต้องตามหลักการออกแบบตารางที่ดีจึงควรเพิ่ม pk ให้ตาราง
สมมุติตารางชื่อ contents และต้องการให้ pk ชื่อ contentId จะเขียน query ได้ตามตัวอย่าง
1 2 | ALTER TABLE `contents` ADD `contentId` INT UNSIGNED NOT NULL AUTO_INCREMENT FIRST , ADD PRIMARY KEY ( `contentId` ) |
อีกวิธีถ้าต้องการให้ primary key เรียงลำดับใหม่โดยให้ แคทตากอรี่เดียวกันอยู่ใกล้กัน หลังจากนั้นเรียงตามชื่อทำได้โดยใช้เทคนิค
row number เข้าไปทำง่ายๆ ตามตัวอย่าง
1 2 3 | Update `contents` set `contentId` = ( select @rownum:=@rownum+1 rownum FROM ( SELECT @rownum:=0) r) ORDER BY `categoryId` ,`title`; |
About the author