在delphi中重新启动自动增量字段

在delphi中重新启动自动增量字段,delphi,field,restart,Delphi,Field,Restart,我正在使用firebird数据库并尝试重新启动id列作为自动增量 删除后的字段 如以下代码所示: SQLQuery1.Close; SQLQuery1.SQL.Text :='DELETE FROM MY_TABLE'; SQLQuery1.ExecSQL; //--------------------------------------------------------- SQLQuery1.Close; SQLQuery1.SQL.Text := 'ALTE

我正在使用firebird数据库并尝试重新启动id列作为自动增量

删除后的字段 如以下代码所示:

  SQLQuery1.Close;
  SQLQuery1.SQL.Text :='DELETE FROM MY_TABLE';
  SQLQuery1.ExecSQL;
  //---------------------------------------------------------
  SQLQuery1.Close;
  SQLQuery1.SQL.Text :=
    'ALTER TABLE MY_TABLE ALTER COLUMN ID AUTO_INCREMENT =1';
  SQLQuery1.ExecSQL;
但我不能那样做。只有deletesql命令有效。 截断是如何工作的? 以下代码在delphi中也不起作用:

  SQLQuery1.Close;
  SQLQuery1.SQL.Text :=
    'TRUNCATE TABLE MY_TABLE';
  SQLQuery1.ExecSQL;

谢谢

删除所有记录后,请尝试以下代码

  SQLQuery1.Close;
  SQLQuery1.SQL.Text := 'SET GENERATOR ID TO 1';
  SQLQuery1.ExecSQL;
请注意,1将是发电机的当前值!您可能希望将其设置为0

如果不起作用,请尝试firebirdnews中发布的此方法

参考:

截断表[]
::=
继续身份
|重新启动标识

使用查找特定Firebird版本支持或不支持的功能。并将其拼写为
INCREMENT
,而不是
ENCREMENT
。谢谢。我尝试了您的答案,但它返回了此错误无效请求BLR,偏移量5处未定义生成器ID。MyTable中列ID的生成器可能不是命名ID,而是其他名称。您可以在“设置生成器”命令中尝试其他方法。
TRUNCATE TABLE <target table> [ <identity column restart option> ]

<identity column restart option> ::=
CONTINUE IDENTITY
| RESTART IDENTITY