我有一个名为 batch1 的表格,其中只有一列 id ,这是主键。
我可以使用以下查询将数据插入其中。
INSERT INTO batch1 VALUES(NULL);
现在我需要为此表设置记录限制,因此它只能插入所需的行数。例如,如果将limit设置为 1000 ,则上表不得在其上方插入更多记录并给出错误。
我在其他表中存储限制。除了LOCKS,我的选择是什么?
答案 0 :(得分:2)
基于Andomar的回答,它为我的MySQL版本引发了语法错误:
insert into batch1 (id)
select null
from (
select count(*) as num
from batch1
) as counted
where counted.num < 1000;
这从派生表中选择,使用结果从外部select中返回一行或零行。
答案 1 :(得分:0)
您可以使用where
子句来阻止不需要的更新:
insert into batch1
select null
where (
select count(*)
from batch1
) < 1000
您可以使用row_count测试更新是否通过:
select row_count() as InsertedRecords;