我需要使用类似的东西:
INSERT into tablename(id)
SELECT max(id) + 1
FROM tablename
其中id
小于 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;