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