[英]MYSQL SELECT MAX(id) + 1 where id < 1000
我需要使用类似:
INSERT into tablename(id)
SELECT max(id) + 1
FROM tablename
如果id
小于1000,并且if max(id) = 1000 insert next id as 1
1000, if max(id) = 1000 insert next id as 1
,以便该列从1-1000填充并重新开始。
我可以拥有并自动递增主键列。
任何帮助将不胜感激。
我不是SQL专家,但是使用下面的注释,我已经在Delphi中执行了此操作,该地方将执行此SQL。 我仍然想知道如何在MYSQL中完成所有操作,也许这里的专家之一可以帮助解决这个问题。
这是我所做的:
procedure TForm11.Button1Click(Sender: TObject);
var
lastserial : Integer;
begin
with LastRowQuery do
begin
sql.Clear;
sql.Add('SELECT autoid, id FROM inctest ORDER BY autoid DESC LIMIT 1;');
execute;
end;
If LastRowQueryid.value < 1000 then lastserial:= LastRowQueryid.value + 1
else
lastserial := 1;
with LastRowQuery do
begin
sql.Clear;
sql.Add('Insert into inctest (id) values(:theserial)');
ParamByName('theserial').Value := lastserial;
execute;
end;
end;
我想也许您想要这样: http : //dev.mysql.com/doc/refman/5.0/en/mathematical-functions.html#function_mod
给像 :
INSERT into tablename(id) SELECT MOD(count(id),1000)+1 FROM tablename
或类似地,
INSERT into tablename(id) SELECT (count(id)%1000)+1 FROM tablename
干杯。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.