1

主キーであるidを1列だけ含むbatch1という名前のテーブルがあります。

次のクエリでデータを挿入できます。

INSERT INTO batch1 VALUES(NULL);

ここで、このテーブルのレコードに制限を設定して、必要な数の行のみを挿入できるようにする必要があります。たとえば、制限が1000に設定されている場合、上記のテーブルはそれ以上のレコードを挿入してはならず、エラーが発生します。

他のテーブルに制限を保存しています。LOCKS 以外のオプションは何ですか?

4

2 に答える 2

2

私のバージョンのMySQLの構文エラーをスローするAndomarの回答に基づいて構築します。

insert  into batch1 (id)
select  null
from    (
        select  count(*) as num
        from    batch1
        ) as counted
where   counted.num < 1000;

これは派生テーブルから選択し、結果を使用して外部選択から 1 行または 0 行を返します。

于 2012-08-14T19:02:09.227 に答える
0

where句を使用して、不要な更新を防ぐことができます。

insert  into batch1 
select  null
where   (
        select  count(*)
        from    batch1
        ) < 1000

更新が完了したかどうかをrow_countでテストできます。

select  row_count() as InsertedRecords;
于 2012-08-14T16:59:02.153 に答える