Mysqlでの一括更新の2つの方法
1077 ワード
insert into table (aa,bb,cc) values(xx,xx,xx),(oo,oo,oo) on duplicate key update aa=values(aa),bb=values(bb),cc=values(bb)+values(cc)
aを一括挿入して更新し、操作を更新し、values後に複数のレコード、プライマリ・キーまたは一意の値が存在する場合は、最後に提供されたルールに従って更新し、ルールはカスタマイズされ、cc=values(bb)+values(cc)b、最後に追加されたフィールドのみを更新し、bb=values(bb)c、更新時にcreate_dateは空ではなくデフォルト値のないカラムで、keyとvalueに追加する必要がありますが、最後に更新されたカラムには必ずしもこのカラムが含まれていません.ex: insert into table (aa,bb,create_date) values (xx,xx,now()) on duplicate key update aa = values(aa),bb=value(bb) replace into table (aa,bb,cc) values(xxx,xxx,xxx),(ooo,ooo,ooo),(ccc,ccc,ccc)
この方式テーブルには一意のプライマリ・キーが必要です.原理はAとあまり違わない.プライマリ・キーが存在すると更新され、存在しないと挿入されます.1、2つのフィールドのみを更新する場合は、このメソッドを使用しないでください.そうしないと、他のフィールドが空になったり、実行前にvalues値が完全に入力されたりします.ただし、このメソッドには、プライマリ・スレーブ・サーバが構成されている場合、ライブラリからのプライマリ・キーとプライマリ・ライブラリのプライマリ・キーが一致しないピットがあります.