一括挿入のmysql - 私は句を無視し使用することができますか?なしには限界があります。一括挿入のレコードの?
-
16-09-2019 - |
質問
私は私が挿入するデータの束を持っていると私はMySQLの一括挿入を使用することを決定した。
(要求者、バディ)の値(値1、値2)友人に挿入、(VALUE2、VALUE1)、(VALUE3、value4)、(value4、VALUE3)、...
私は次のことを知っていただきたいと思います:
1)私は無視する使用できますか?例えば、
友人に(要求者、バディ)の値(値1、値2)、(値2、VALUE1)、(VALUE3、value4)を無視挿入し、(value4、VALUE3)、...
私が重複している場合は、何が起こりますか?それは、a)はすべてのものを挿入しないのだろうか? b)は、重複レコードの前にレコードを挿入し、その後、データの処理を停止? c)の重複を無視し、残りの部分とに運ぶ?
2)なしには限界があります。レコードで私はこのような一括挿入?
のために使用することができますありがとうございます。
解決
はい、あなたは「無視」キーワードを使用することができ、そしてそれは単に重複エラーを無視します。これは、すべての行を挿入しますそれができること、(それはデータの処理を停止しません。)あなたは(私たちは、最初の列が主キーであると仮定)は、このような何かを行う場合は、重複につながるものスキップします:
(3,3)、(3,5)、(4,5)、C値(1,1)、(2,2)に無視挿入
そしてそれはしません(3,3)が挿入されることを意味し、(3,5)。 (3,5)以外のすべてに挿入される(新鮮なテーブルを想定。)
そこにはハードリミットはおそらくありませんが、あなたはあなたのニーズに基づいて線を引く必要がある場所を確認するためにテストを実行したい場合があります。
編集:MySQLはデフォルトでは1メガバイトであることと、SQLクエリのサイズに設定可能な制限を持っているように見えるん。さらに詳しい情報:ます。http://dev.mysql。 COM / DOC / refman / 5.0 / EN /サーバー・システム・variables.html#sysvar_query_cache_limitするます。
他のヒント
INSERTクエリが持っているかもしれ50,000行の制限もあります。