INSERT INTO ... VALUES...
を使用する場合、1つのステートメントに挿入できる最大行数は1000です。 つまり、
INSERT INTO TableName( Colum1)
VALUES (1),
(2),
(3),...... upto 1000 rows.
ただし、SELECTステートメントを使用してテーブルに行を挿入している場合は、その制限はありません。たとえば、...
INSERT INTO TableName (ColName)
Select Col FROM AnotherTable
次に、2番目の質問に移ります。挿入中にエラーが発生するとどうなりますか。
複数値構成を使用して行を挿入する場合
INSERT INTO TableName( Colum1)
VALUES (1),
(2),
(3)
上記のシナリオでは、行の挿入によってエラーが発生した場合、ステートメント全体がロールバックされ、どの行も挿入されません。
ただし、行ごとに個別のステートメントを使用して行を挿入する場合、つまり...
INSERT INTO TableName( Colum1) VALUES (1)
INSERT INTO TableName( Colum1) VALUES (2)
INSERT INTO TableName( Colum1) VALUES (3)
上記の場合、各行の挿入は個別のステートメントであり、いずれかの行の挿入によってエラーが発生した場合、その特定の挿入ステートメントのみがロールバックされ、残りは正常に挿入されます。