ผู้เขียน หัวข้อ: เขียน query Insert ข้อมูล โดยเช็คข้อมูลซ้ำไม่ให้ Insert ลง table ที่ข้อมูลอยู่แล้ว อย่างไร  (อ่าน 9048 ครั้ง)

0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้

ออฟไลน์ leonet

  • Sr. Member
  • ****
  • กระทู้: 454
  • Respect: +1
    • ดูรายละเอียด
    • โรงพยาบาลศรีสังวรสุโขทัย
ผมมีข้อมูล อยู่ 2 Table  มีโครงสร้างเหมือนกันทั้ง 2 Table  คือ a  กับ b

ต้องการดึงข้อมูลจาก table b  ไป Insert ลง Table a   โดยที่ table a  มีข้อมูลบางส่วนอยู่แล้ว และเหมือนกับ table b 

ผมลองใช้ Query แบบนี้แล้ว มันเกิด [Err] 1062 - Duplicate entry '1' for key 'PRIMARY'
แล้วหลุดไปไม่ทำงาน 
****คำสั่งที่ผมใช้ แบบนี้ครับ *******************
INSERT INTO a1 ( a, b, c )
SELECT a2.a, a2.b, a2.c
FROM a2

***********************

จะเขียน query เช็คอย่างไรไม่ใ้ห้ Error Duplicate และก็ทำงานจนแล้วเสร็จ






Mr.Kreangkrai Chatsut   http://www.facebook.com/banotwo
mail : kchatsut@hotmail.com Srisangwornsukhothai Hospital  web : www.srisangworn.go.th
SERVER :  Quad Core Xeon 2.4    Ram 32G   SAN STORAGE 600 GB  OS : Linux CENTOS 6.0   Mysql  5.5.17 ล่าสุดครับ
เริ่ม  4 สิงหาคม 2549  ขึ้นระบบ : อ.ชัยพร และ ทีม BMS ปรับระบบล่าสุด 13 ธ.ค. 54
----------------------------------------------------------

ออฟไลน์ Terminator2015

  • Hero Member
  • *****
  • กระทู้: 3,350
  • Achilles : ประวัติศาสตร์จารึกชื่อกษัตริย์ มิได้จารึกชื่อทหาร
  • Respect: +64
    • ดูรายละเอียด
    • โรงพยาบาลนาเชือก
แบบนี้ได้ไหมครับ เคยเห็น แต่ยังไม่เคยลอง

INSERT ignore INTO a1 ( a, b, c )
SELECT a2.a, a2.b, a2.c
FROM a2

นายคณวัชร คำชัย(ทัศ) โรงพยาบาลนาเชือก จ.มหาสารคาม
Mail : nachuak@hotmail.co.th  Tel.  (AIS)0817080646
โรงพยาบาลชุมชน ขนาด 30 เตียง (Paperless OPD)
ดุแล สอ.12 แห่ง HOSxP_PCU 3.59.12.15 NewVersion
ขึ้นระบบเมื่อ 1 ต.ค. 2549

ออฟไลน์ usa0823

  • Hero Member
  • *****
  • กระทู้: 773
  • Respect: +9
    • ดูรายละเอียด
ผมมีข้อมูล อยู่ 2 Table  มีโครงสร้างเหมือนกันทั้ง 2 Table  คือ a  กับ b

ต้องการดึงข้อมูลจาก table b  ไป Insert ลง Table a   โดยที่ table a  มีข้อมูลบางส่วนอยู่แล้ว และเหมือนกับ table b 

ผมลองใช้ Query แบบนี้แล้ว มันเกิด [Err] 1062 - Duplicate entry '1' for key 'PRIMARY'
แล้วหลุดไปไม่ทำงาน 
****คำสั่งที่ผมใช้ แบบนี้ครับ *******************
INSERT INTO a1 ( a, b, c )
SELECT a2.a, a2.b, a2.c
FROM a2

***********************

จะเขียน query เช็คอย่างไรไม่ใ้ห้ Error Duplicate และก็ทำงานจนแล้วเสร็จ


ผมว่าน่าจะเป็น update ไหมครับ เพราะว่าที่จะ insert เพิ่ม error ฟ้อง primary key ซ้ำ
แต่ต้องดูว่าบางส่วนที่เหมือนกันไหม คืออะไร
***************************************
นายศรัญญู  ชูเมือง
จพ.เภสัชกรรมชำนาญงาน
ดูแลระบบ โรงพยาบาลลานสกา
E-mail  Sarunyu0823@hotmail.com
..............................................................................
** HOSxP ver. 3.56.11.19d
** MySQL 5.6.17
** Activated 2560

ออฟไลน์ leonet

  • Sr. Member
  • ****
  • กระทู้: 454
  • Respect: +1
    • ดูรายละเอียด
    • โรงพยาบาลศรีสังวรสุโขทัย
ได้แล้วครับ  ขอบคุณท่าน Terminator2012 และทุกๆ ท่านครับ
« แก้ไขครั้งสุดท้าย: ตุลาคม 09, 2012, 11:23:46 AM โดย leonet »
Mr.Kreangkrai Chatsut   http://www.facebook.com/banotwo
mail : kchatsut@hotmail.com Srisangwornsukhothai Hospital  web : www.srisangworn.go.th
SERVER :  Quad Core Xeon 2.4    Ram 32G   SAN STORAGE 600 GB  OS : Linux CENTOS 6.0   Mysql  5.5.17 ล่าสุดครับ
เริ่ม  4 สิงหาคม 2549  ขึ้นระบบ : อ.ชัยพร และ ทีม BMS ปรับระบบล่าสุด 13 ธ.ค. 54
----------------------------------------------------------

ออฟไลน์ farmonline

  • Sr. Member
  • ****
  • กระทู้: 353
  • Nobody Perfect
  • Respect: 0
    • ดูรายละเอียด
    • Piyanat Blog
ความรู้ใหม่เลยนะเนี่ย ขอบคุณครับ
ปิยะณัฐ นิ่มขุนทด (Farm)
นักวิชาการคอมพิวเตอร์ - โรงพยาบาลวิเชียรบุรี จ.เพชรบูรณ์
Email farmonline@gmail.com
MSN farmonline@hotmail.com
HOSxP V. 3.54.X.X MySQL 5.1.30
<b>Show the world what I can do!</b>
โปรแกรม HOSxP2Depression2011 https://sites.google.com/site/hosxp2depression2011