主キーであるidを1列だけ含むbatch1という名前のテーブルがあります。
次のクエリでデータを挿入できます。
INSERT INTO batch1 VALUES(NULL);
ここで、このテーブルのレコードに制限を設定して、必要な数の行のみを挿入できるようにする必要があります。たとえば、制限が1000に設定されている場合、上記のテーブルはそれ以上のレコードを挿入してはならず、エラーが発生します。
他のテーブルに制限を保存しています。LOCKS 以外のオプションは何ですか?
私のバージョンのMySQLの構文エラーをスローするAndomarの回答に基づいて構築します。
insert into batch1 (id)
select null
from (
select count(*) as num
from batch1
) as counted
where counted.num < 1000;
これは派生テーブルから選択し、結果を使用して外部選択から 1 行または 0 行を返します。
where
句を使用して、不要な更新を防ぐことができます。
insert into batch1
select null
where (
select count(*)
from batch1
) < 1000
更新が完了したかどうかをrow_countでテストできます。
select row_count() as InsertedRecords;