DDL — Advanced Columns
A v1.4.0 expande os tipos de colunas suportados pela API Schema, incluindo Identidade Nativa e Colunas Calculadas.
Identidade e Auto-Incremento
O FluentSQL unifica o comportamento de auto-incremento entre diferentes dialetos.
Auto-Incremento Simples
Gera AUTO_INCREMENT no MySQL, SERIAL no PostgreSQL e GENERATED BY DEFAULT AS IDENTITY no Firebird 3+.
uses FluentSQL;
var
SQL: string;
begin
SQL := Schema(dbnPostgreSQL)
.CreateTable('LOGS')
.Column('ID', ltyInteger).Identity
.AsString;
end;
Identidade Avançada (Identity Always/By Default)
Suporte explícito para o padrão SQL:2003, suportado por PostgreSQL, Firebird 3+ e Oracle.
// Valor SEMPRE gerado pelo banco
.Column('ID', ltyInteger).IdentityAlways
// Valor gerado por padrão, mas permite inserção manual
.Column('ID', ltyInteger).IdentityByDefault
Colunas Calculadas (Computed Columns)
Colunas que derivam seu valor de outras colunas ou expressões.
uses FluentSQL;
var
SQL: string;
begin
SQL := Schema(dbnFirebird)
.CreateTable('ITENS_PEDIDO')
.Column('QTD', ltyInteger)
.Column('PRECO_UNI', ltyCurrency)
.Column('TOTAL').ComputedBy('QTD * PRECO_UNI')
.AsString;
end;
Alterar Coluna (Alter Column)
A API de AlterTable agora permite modificar definições de colunas existentes.
SQL := Schema(dbnMSSQL)
.AlterTable('CLIENTES')
.AlterColumn('TELEFONE', ltyString, 20).NotNull
.AsString;