我正在使用firebird数据库,并尝试将id列重新启动为AUTO_INCREMENT
删除后的字段
像下面的代码:
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;
谢谢
最佳答案
删除所有记录后,请尝试以下代码,
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