MySQL: insert ถ้ายังไม่มี

ปกติใน MySQL (DBMS อื่นๆ ก็คงเหมือนกัน) ถ้าเราไป insert อะไรซ้ำๆ เข้าไปใน column ที่บังคับไว้ว่าต้อง unique มันก็จะเจ๊ง ก็เลยต้องมาดูก่อนว่ามีข้อมูลแล้วหรือยัง ค่อย insert แต่ว่าจะเขียน SQL อย่างไรให้สั้นๆ ง่ายๆ เท่าที่อ่านมาจาก http://bogdan.org.ua/2007/10/18/mysql-insert-if-not-exists-syntax.html ผ่านทาง http://stackoverflow.com/questions/1361340/how-to-insert-if-not-exists-in-mysql มาอีกที

ผมเลือกใช้ “on duplicate key update” เพิ่มใน insert เพราะเท่าที่อ่านมา 3 วิธีก็ วิธ๊นี้ก็ดูประหยัด และไม่ไปเพิกเฉยต่อ error อื่น ที่ไม่เกี่ยวข้อง

สมมุติว่าผมจะเพิ่ม 6 เข้าไปใน textunit_conflicts.textunit_id ก็เขียนแบบนี้

insert into textunit_conflicts value (6) on duplicate key update textunit_id = textunit_id;

textunit_id = textunit_id ก็เขียนไปไม่ให้มันผิด syntax เฉยๆ

ใส่ความเห็น

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