replace intoは便利。
insertとupdateを合わせたようなsql。データが存在する場合は既存のレコードを置換(update)し、存在しない場合はinsertする。わざわざ、selectで取ってきて値があるかどうか確認してupdateかinsertする、なんてことはしなくていい。
上でupdateと書いたけど、mysqlのreplace intoは内部ではupdateではなくdelete-intoをしてるらしい。だから、auto_incrementなフィールドは値が変わってしまうので注意。キーがauto_incrementの場合はdelete-intoでもupdateと結果が一緒だから問題ないが。ほかのDBはしらん。
・replaceコマンドではまりました。
■参考
・データ置換(replace文)
insertとupdateを合わせたようなsql。データが存在する場合は既存のレコードを置換(update)し、存在しない場合はinsertする。わざわざ、selectで取ってきて値があるかどうか確認してupdateかinsertする、なんてことはしなくていい。
上でupdateと書いたけど、mysqlのreplace intoは内部ではupdateではなくdelete-intoをしてるらしい。だから、auto_incrementなフィールドは値が変わってしまうので注意。キーがauto_incrementの場合はdelete-intoでもupdateと結果が一緒だから問題ないが。ほかのDBはしらん。
・replaceコマンドではまりました。
■参考
・データ置換(replace文)