Menggunakan "INSERT INTO ... SELECT FROM ... ON DUPLICATE KEY UPDATE"
Apabila melakukan operasi sisipan dengan MySQL, ia adalah mungkin untuk mengemas kini baris sedia ada jika konflik kunci unik berlaku. Ini boleh dicapai menggunakan sintaks "INSERT INTO ... SELECT FROM ... ON DUPLICATE KEY UPDATE".
Dalam pertanyaan yang diberikan, ia bertujuan untuk memasukkan baris daripada jadual sementara ('tmp') ke dalam meja 'lee'. Jika baris dengan kunci unik yang sama ("id" dalam kes ini) sudah wujud dalam 'lee', pertanyaan harus mengemas kini lajur tertentu kepada nilai daripada jadual 'tmp'.
Sintaks untuk KEMASKINI klausa dalam senario ini adalah seperti berikut:
ON DUPLICATE KEY UPDATE column1=SELECT_column1, column2=SELECT_column2, ...
Di sini, "lajur1" merujuk kepada lajur dalam jadual 'lee', dan "SELECT_column1" merujuk kepada lajur yang sepadan dalam klausa SELECT. Dengan menentukan pasangan ini, MySQL menentukan lajur yang ingin dikemas kini dengan nilai baharu daripada SELECT.
Untuk pertanyaan yang diberikan, klausa UPDATE akan kelihatan seperti:
ON DUPLICATE KEY UPDATE entct=t.entct, inact=t.inact, inadur=t.inadur, inadist=t.inadist, smlct=t.smlct, smldur=t.smldur, smldist=t.smldist, larct=t.larct, lardur=t.lardur, lardist=t.lardist, emptyct=t.emptydur, emptydur=t.emptydur
Ini memastikan bahawa lajur "entct", "inact", "inadur", dan sebagainya, dikemas kini dengan nilai daripada lajur yang sepadan dalam jadual sementara apabila kunci pendua dihadapi.
Atas ialah kandungan terperinci Bagaimana untuk Mengemas kini Baris Sedia Ada Semasa INSERT Menggunakan MySQL ON DUPLICATE KEY UPDATE?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!