在delphi中重新启动AUTO_INCREMENT字段

时间:2017-11-19 21:05:11

标签: delphi field restart

我正在使用firebird数据库并尝试重新启动id列为 AUTO_INCREMENT

DELETE后的

字段 如下代码:

  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;

但我做不到。只有DELETE SQL命令才有效。 TRUNCATE如何运作? 以下代码也不适用于delphi:

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

谢谢

1 个答案:

答案 0 :(得分:2)

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

  SQLQuery1.Close;
  SQLQuery1.SQL.Text := 'SET GENERATOR ID TO 1';
  SQLQuery1.ExecSQL;

请注意,1将是发电机的当前值!您可能希望将其设置为0.

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

参考:https://www.firebirdnews.org/rfc-truncate-table-in-firebird/

TRUNCATE TABLE <target table> [ <identity column restart option> ]

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