Pular para o conteúdo principal

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;

Próximos passos