1

我有一个名为batch1的表,其中只有一列id是主键。

我可以使用以下查询将数据插入其中。

INSERT INTO batch1 VALUES(NULL);

现在我需要为该表设置记录限制,以便它只能插入所需的行数。例如,如果 limit 设置为1000,则上表不得在此之上插入更多记录并给出错误。

我将限制存储在其他表中。除了LOCKS,我还有什么选择?

4

2 回答 2

2

以 Andomar 的回答为基础,它为我的 MySQL 版本引发了语法错误:

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

这从派生表中进行选择,使用结果从外部选择返回一行或零行。

于 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 回答