我正在使用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;
谢谢
答案 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