mysql auto number


บางตารางที่จะย้ายระบบอาจจะไม่มี primary key เพื่อให้ถูกต้องตามหลักการออกแบบตารางที่ดีจึงควรเพิ่ม pk ให้ตาราง
สมมุติตารางชื่อ contents และต้องการให้ pk ชื่อ contentId จะเขียน query ได้ตามตัวอย่าง

ALTER TABLE `contents` ADD `contentId` INT UNSIGNED NOT NULL AUTO_INCREMENT FIRST ,
ADD PRIMARY KEY ( `contentId` )

อีกวิธีถ้าต้องการให้ primary key เรียงลำดับใหม่โดยให้ แคทตากอรี่เดียวกันอยู่ใกล้กัน หลังจากนั้นเรียงตามชื่อทำได้โดยใช้เทคนิค
row number เข้าไปทำง่ายๆ ตามตัวอย่าง

Update `contents` set `contentId` =
(select @rownum:=@rownum+1 rownum FROM (SELECT @rownum:=0) r)
ORDER BY `categoryId` ,`title`;

About plusmagic

PHP lover in thailand

Posted on 2012/11/19, in database, MySql, programming and tagged , , , , , , . Bookmark the permalink. ใส่ความเห็น.

ใส่ความเห็น

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / เปลี่ยนแปลง )

Twitter picture

You are commenting using your Twitter account. Log Out / เปลี่ยนแปลง )

Facebook photo

You are commenting using your Facebook account. Log Out / เปลี่ยนแปลง )

Google+ photo

You are commenting using your Google+ account. Log Out / เปลี่ยนแปลง )

Connecting to %s

%d bloggers like this: