我需要使用類似:MYSQL SELECT MAX(ID)+ 1其中id <1000
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;
我不認爲有一個可行的方法來做到這一點。你必須選擇最高,最重複的ID_。 – 2013-04-03 23:03:41
如何:INSERT into inctest(id) SELECT TOP 1 id%100 + 1 FROM inctest ORDER BY autoid DESC' – kobik 2013-04-04 10:23:44
@kobik我認爲這個語法在MYSQL中會有所不同。 – 2013-04-04 10:35:34