Pular para o conteúdo principal

DDL — TRUNCATE TABLE (ESP-029)

Rastreio: ESP-029 / ADR-029, issue #44. Sem entrada em CHANGELOG.md até /release.

O FluentSQL gera texto SQL para TRUNCATE TABLE em PostgreSQL, Firebird e MySQL / MariaDB (dbnMySQL). Em PostgreSQL são opcionais RESTART IDENTITY e CASCADE (ver matriz abaixo). O pacote não executa DDL.

Motor de referência

  • PostgreSQL: cláusulas opcionais seguem a documentação oficial: após o nome da tabela, RESTART IDENTITY (se pedido) e depois CASCADE (se pedido).
  • Firebird: TRUNCATE TABLE está alinhado a versões que suportam o comando (ex.: Firebird 3+); RESTART IDENTITY / CASCADE não são emitidos — ver matriz de excepções.
  • MySQL / MariaDB: forma canónica TRUNCATE TABLE nome; modificadores PG não são emitidos — ENotSupportedException se forem solicitados na API fluente.

Ponto de entrada

  • CreateFluentDDLTruncateTable(ADialect, 'TABELA') (unit FluentSQL), devolvendo IFluentDDLTruncateTableBuilder (FluentSQL.Interfaces).

Chamar AsString para obter o comando. Opcionalmente encadear .RestartIdentity e/ou .Cascade apenas quando o dialecto for dbnPostgreSQL (ver tabela).

Exemplo mínimo

uses
FluentSQL, FluentSQL.Interfaces;

var
LSql: string;
begin
LSql := CreateFluentDDLTruncateTable(dbnFirebird, 'CLIENTES').AsString;
// TRUNCATE TABLE CLIENTES
end;

PostgreSQL — opcionais

LSql := CreateFluentDDLTruncateTable(dbnPostgreSQL, 'orders')
.RestartIdentity
.Cascade
.AsString;
// TRUNCATE TABLE orders RESTART IDENTITY CASCADE

A ordem canónica na string é sempre RESTART IDENTITY antes de CASCADE, independentemente da ordem das chamadas na API (ambos são apenas indicadores).

Matriz de comportamento (ADR-029)

DialetoNúcleo TRUNCATE TABLE t.RestartIdentity.Cascade
PostgreSQLSimEmite RESTART IDENTITYEmite CASCADE
FirebirdSimENotSupportedException (ESP-029)ENotSupportedException (ESP-029)
MySQLSimENotSupportedException (ESP-029)ENotSupportedException (ESP-029)
Outros (dbnOracle, …)ENotSupportedException até haver ramo dedicado

Nome de tabela obrigatório; só espaços após trimEArgumentException com rastreio ESP-029.

Ligações