Firebird™ Versão 1.5
Notas da Versão v.1.5
08 de Fevereiro de 2004 – Versão 1. 08
Conteúdo
Not as Gerais Novas FuncionalidadesCompat ibilidade com Versões Ant eriores Aperf eiçoament o da Linguagem
! Tipos de Campos ! Met a dados ! DSQL ! PSQL
! Firebird 1.0.x
Novas Palavras Reservadas Funcionalidades ISQL
Funções Def inidas pelo Usuário (UDFs) ! na bibliot eca ib_udf
! na bibliot eca f budf
Novo Arquivo de Conf iguração—f irebird.conf ! Parâmet ros relacionados com o Sist ema ! Relat ivos aos Recursos
! Relat ivos às Comunicações ! Específ icos POSIX
Parâmet ros f irebird.conf (cont inuação…) ! Específ icos Windows
! Espaço de Ordenação ! Compat ibilidade Alias de Arquivos de BD ! Conexão usando um alias
! Nomeando bases de dados no Windows Equipe de Desenvolviment o do Firebird Not as de Inst alação
! Windows 32-bit ! Linux/ UNIX ! Solaris ! MacOS X ! FreeBSD
Inf ormação Adicional Ferrament as e Drivers Document ação
Erros Corrigidos
Notas Gerais
O Servidor de Banco de dados Firebird™ f oi desenvolvido por um grupo independent e de programadores a part ir do código f ont e original do Int erBase™ que f oi disponibilizado pela Borland sob a “ Int erBase Public License v.1.0” , em 25 de Julho de 2000.
O desenvolviment o do código do Firebird 2 começou ant es mesmo do t érmino do desenvolviment o da primeira versão do Firebird 1, com a adapt ação do código original de C para C++ e a primeira limpeza geral. O Firebird 1.5 é o primeiro lançament o do código do Firebird 2. É um passo signif icat ivo para os programadores e para t odo o proj et o Firebird, mas ainda não é um f im. Simult aneament e ao
lançament o da versão 1.5, novas alt erações est ão sendo cont inuament e ef et uadas para o desenvolviment o do Firebird 2.
A manut enção do Firebird 1.0.x prossegue normalment e – as correções de erros e melhorias import ant es do Firebird 1.5 f oram t ransport adas para a versão 1.0.
O
O
s
s
E
E
x
x
e
e
c
c
u
u
t
t
á
á
v
v
e
e
i
i
s
s
d
d
o
o
F
F
i
i
r
r
e
e
b
b
i
i
r
r
d
d
1
1
.
.
5
5
Os execut áveis do Firebird podem ser obt idos no sit e da Web: ht t p:/ / sourcef orge.net / proj et / showf iles.php?group_id=9028
D
D
e
e
s
s
c
c
r
r
i
i
ç
ç
õ
õ
e
e
s
s
d
d
e
e
V
V
e
e
r
r
s
s
ã
ã
o
o
d
d
o
o
F
F
i
i
r
r
e
e
b
b
i
i
r
r
d
d
1
1
.
.
5
5
Win32: "WI-V1.5.0.nnnn Firebird 1.5" Linux: "LI-V1.5.0.nnnn Firebird 1.5"
E assim por adiant e, sendo nnnn o número da compilação.
Vej a a Seção de Document ação para obt er inf ormação sobre a document ação recomendada.
Novas Funcionalidades
N
N
o
o
v
v
o
o
c
c
ó
ó
d
d
i
i
g
g
o
o
,
,
m
m
e
e
l
l
h
h
o
o
r
r
o
o
t
t
i
i
m
m
i
i
z
z
a
a
ç
ç
ã
ã
o
o
Est a versão f oi desenvolvida a part ir da t ransposição do código original em C para C++, um processo iniciado em 2000 por Mike Nordell. Além do processo cont ínuo de revisão, limpeza e remoção de erros, f oi desenvolvido um novo gerenciador de memória, e f oram int roduzidas novas f unções na linguagem. Ainda durant e o desenvolviment o da versão 1.5, o “ SQL Query Opt imizer” recebeu uma série de melhorias e correções, implement adas por Arno Brickman e out ros, result ando em ganhos de perf ormance de 30 a 60 % e mesmo mais em alguns casos.
A
A
r
r
q
q
u
u
i
i
t
t
e
e
t
t
u
u
r
r
a
a
Duas novidades import ant es nas plat af ormas Windows são os servidores “ Classic” e o “ Embedded” . ! Não exist ia uma versão do modelo “ Classic” para windows há mais de 8 anos. Est e versão pode
ut ilizar múlt iplos processadores, algo que ainda não é suport ado de f orma adequada na versão “ SuperServer” para Windows. Embora ut ilizável, a versão do modo “ Classic” deve ser vist a ainda como experiment al.
! “ Embedded Server” (ou servidor embut ido) é uma DLL que int egra um client e com uma única conexão e um servidor “ SuperServer” para permit ir a const rução rápida e ef icient e de aplicações mono usuário e t ransport áveis.
Várias e import ant es ext ensões f oram adicionadas à linguagem desde a versão 1.0.x, incluindo as expressões condicionais do SQL-92 CASE, COALESCE e NULLIF. Para inf ormações det alhadas dest as e out ras ext ensões à linguagem, ref ira-se ao capít ulo Ext ensões à Linguagem dest e mesmo document o.
M
M
ó
ó
d
d
u
u
l
l
o
o
s
s
I
I
n
n
s
s
t
t
a
a
l
l
a
a
d
d
o
o
s
s
e
e
S
S
e
e
g
g
u
u
r
r
a
a
n
n
ç
ç
a
a
1. A maior part e dos módulos e const ant es mudaram de nome. Na maior part e dos casos, os novos nomes possuem alguma variant e da palavra “ f irebird” ou do pref ixo “ f b” . Por exemplo, a bibliot eca API f az agora part e da bibliot eca compart ilhada “ f bclient .dll” no Windows e “ libf bclient .so” nas out ras plat af ormas. A exceção a est a regra é o banco de dados de segurança, que ant igament e chamava-se “ isc4.gdb” , e agora f oi renomeado para “ securit y.f db” .
2. Os arquivos ext ernos ut ilizados pelo servidor (bibliot ecas UDF, f ilt ros BLOBs, bibliot ecas de set de caract eres, t abelas ext ernas) est ão agora suj eit as a níveis de prot eção no sist ema de arquivos que, em alguns casos, são por padrão dif erent es dos ut ilizados nas versões 1.0.x e pelo Int erbase.
3. O novo arquivo de conf iguração do servidor f irebird.conf subst it ui os ant eriores ibconf ig (Windows) e isc_conf ig (out ras plat af ormas), e cont ém mais opções de conf iguração, além de uma nova organização e document ação int egrada.
4. Possibilidade de criar apelidos para as bases de dados na versão 1.5. Agora é permit ido, opcionalment e, ocult ar a localização de uma base de dados at ribuindo-lhe um apelido, ou “ alias” . A localização original dos arquivos encont ra-se em out ro arquivo, aliases.conf . O principal obj et ivo dest a f unção é prot eger a localização f ísica dos arquivos de um “ snif f er” que espione a rede. 5. Por padrão (e por prát ica) nos Servidores Windows ut iliza-se o usuário “ local syst em” para execut ar
o programa que inst ala o Firebird como serviço na inicialização do sist ema. Ist o pode ser uma séria vulnerabilidade de segurança, pois deixa uma port a abert a para acesso a t oda a máquina. A versão 1.5 do inst alador (inst svc.exe) aceit a usuários específ icos do windows para a inst alação do serviço. É alt ament e recomendável que se crie um usuário Firebird para est e propósit o, e que se ut ilize est a nova f uncionalidade se o seu servidor est iver de alguma f orma conect ado à int ernet .
“
“
T
T
r
r
i
i
m
m
m
m
i
i
n
n
g
g
”
”
d
d
e
e
C
C
a
a
m
m
p
p
o
o
s
s
V
V
a
a
r
r
c
c
h
h
a
a
r
r
e
e
m
m
p
p
r
r
o
o
t
t
o
o
c
c
o
o
l
l
o
o
s
s
r
r
e
e
m
m
o
o
t
t
o
o
s
s
Foi t erminado o t rabalho de implement ar est a f unção no client e 1.5, e agora os campos Varchar são t ransf eridos “ right -t rimmed” pela rede (i.e., os caract eres de “ espaços” à direit a não são t ransmit idos), ocupando apenas o número de caract eres ut ilizados mais 2 byt es.
NOTA: Como é o client e quem solicit a ao servidor a execução do “ t rim” dos varchars, o client e Firebird 1.5 (f bclient .dll ou libf bclient .so) f ará o t rim, mesmo quando conect ado a um servidor de versão ant erior à 1.5. Uma versão ant erior do client e não obt erá o “ t rimming” , mesmo que conect ado a um servidor 1.5 ou post erior.
S
S
e
e
m
m
â
â
n
n
t
t
i
i
c
c
a
a
d
d
e
e
T
T
r
r
i
i
g
g
g
g
e
e
r
r
s
s
p
p
a
a
r
r
a
a
M
M
ú
ú
l
l
t
t
i
i
p
p
l
l
a
a
s
s
a
a
ç
ç
õ
õ
e
e
s
s
Agora você pode escrever em uma única “ Bef ore” ou “ Af t er” Trigger ações condicionais para as dif erent es operações de t abela : “ insert ” , ” updat e” ou ” delet e” . Est a nova semânt ica f acilit a a elaboração e a manut enção de Triggers sem eliminar a possibilidade de est abelecer múlt iplos t riggers para cada f ase.
M
M
e
e
l
l
h
h
o
o
r
r
i
i
a
a
n
n
a
a
n
n
o
o
m
m
e
e
n
n
c
c
l
l
a
a
t
t
u
u
r
r
a
a
d
d
e
e
“
“
c
c
o
o
n
n
s
s
t
t
r
r
a
a
i
i
n
n
t
t
s
s
”
”
Os índices que f orçam a int egridade podem agora possuir um nome def inido pelo usuário.
At enção ! Se ut ilizada est a f uncionalidade, o banco de dados não será mais compat ível com a v.1.0.x ou com o Int erBase®.
N
N
ú
ú
m
m
e
e
r
r
o
o
m
m
á
á
x
x
i
i
m
m
o
o
d
d
e
e
í
í
n
n
d
d
i
i
c
c
e
e
s
s
p
p
o
o
r
r
T
T
a
a
b
b
e
e
l
l
a
a
f
f
o
o
i
i
a
a
u
u
m
m
e
e
n
n
t
t
a
a
d
d
o
o
Agora - t ant o na versão 1.0 como nest a versão — o número máximo de índices por t abela passou de 64 para 256.
“
“
P
P
e
e
s
s
s
s
i
i
m
m
i
i
s
s
t
t
i
i
c
c
l
l
o
o
c
c
k
k
i
i
n
n
g
g
”
”
Para os casos raros em que f or preciso aplicar um bloqueio pessimist a, est a versão adiciona uma nova sint axe para impor um bloqueio de leit ura em linhas enquant o elas são manipuladas pelo client e. Use est e recurso com muit o cuidado.
“
“
C
C
a
a
c
c
h
h
e
e
d
d
e
e
C
C
o
o
n
n
e
e
x
x
ã
ã
o
o
”
”
à
à
b
b
a
a
s
s
e
e
d
d
e
e
d
d
a
a
d
d
o
o
s
s
d
d
e
e
S
S
e
e
g
g
u
u
r
r
a
a
n
n
ç
ç
a
a
A conexão à base de dados de segurança é mant ida em cache na versão SS. Ist o é, o securit y.f db é carregado em memória quando a primeira conexão é f eit a, e é mant ido em memória enquant o houver conexões client es at ivas.
M
M
e
e
l
l
h
h
o
o
r
r
e
e
s
s
m
m
e
e
n
n
s
s
a
a
g
g
e
e
n
n
s
s
d
d
e
e
e
e
r
r
r
r
o
o
Sempre que possível, as mensagens que report am erros de SQL são agora mais det alhadas. É import ant e ressalt ar que podem ocorrer mensagens est ranhas se f orem ut ilizados arquivos int erbase.msg ou f irebird.msg de versões ant eriores.
S
S
e
e
r
r
v
v
i
i
ç
ç
o
o
s
s
A
A
P
P
I
I
n
n
a
a
v
v
e
e
r
r
s
s
ã
ã
o
o
C
C
l
l
a
a
s
s
s
s
i
i
c
c
d
d
o
o
L
L
i
i
n
n
u
u
x
x
Est á disponível o suport e limit ado para os Serviços API para a versão do Classic Server em Linux. Os Serviços disponíveis são os de gbak (backup/ rest ore) e gf ix (validar base de dados, shut down/ online, et c). Os demais (gst at , regist ros do servidor, et c.) não f oram t est ados e provavelment e permanecem não f uncionais.
A
A
l
l
t
t
e
e
r
r
a
a
ç
ç
õ
õ
e
e
s
s
n
n
a
a
s
s
b
b
i
i
b
b
l
l
i
i
o
o
t
t
e
e
c
c
a
a
s
s
d
d
o
o
C
C
l
l
i
i
e
e
n
n
t
t
e
e
Clientes Windows
A bibliot eca client e f oi renomeada para f bclient .dll. Todos os ut ilit ários do servidor (gbak, gf ix, et c) ut ilizam apenas est a bibliot eca. Conect e as novas aplicações diret ament e pela f bclient .dll, sem necessidade da gds32.dll (Recomendado).
Para mant er a compat ibilidade com as aplicações exist ent es, é possível gerar uma cópia da bibliot eca f bclient .dll com o nome de gds32.dll usando o novo ut ilit ário ‘ inst client .exe’ . Para inst ruções mais det alhadas vej a a seção de inst alação e as not as mais recent es da dist ribuição Windows do Firebird.
Clientes Linux
A bibliot eca client e do Super Server chama-se agora “ libf bclient .so” . Para compat ibilidade com aplicações exist ent es, é inst alado um symlink “ libgds.so” que apont a para libf bclient .so. A bibliot eca local para aplicações embedded que se conect am ao servidor Classic f oi renomeada para libf bembed.so.
A
A
r
r
q
q
u
u
i
i
v
v
o
o
s
s
e
e
M
M
ó
ó
d
d
u
u
l
l
o
o
s
s
r
r
e
e
n
n
o
o
m
m
e
e
a
a
d
d
o
o
s
s
Plataforma Módulo Firebird 1. 0 Firebird 1. 5 Notas especiais
Todas Variáveis de Ambient e INTERBASE INTERBASE_LOCK INTERBASE_MSG FIREBIRD FIREBIRD_LOCK FIREBIRD_MSG
Diret ório raiz de inst alação Local do arquivo de Lock Local do arquivo de Mensagem
Plataforma Módulo Firebird 1. 0 Firebird 1. 5 Notas especiais
Todas Base de Dados de Segurança
Isc4.gdb securit y.f db Todas Arquivo de
Mensagens
Int erbase.msg f irebird.msg Todas Arquivo de Log int erbase.log f irebird.log
Todas Versão de ODS 10 10.1 Novo ODS (10.1). Não provoca nenhuma incompat ibilidade com versões ant eriores de ODS mas a versão mesmo assim não é at ualizada aut omat icament e. Tant o o Firebird 1.0 como o 1.5 suport am BD’ s de ODS 10.0 e 10.1. Porém, a operação de backup/ rest ore é ainda o procediment o recomendado para migrar BD’ s para uma versão dif erent e do servidor. Linux Binário do
Classic server
Gds_inet _server f b_inet _server Linux Gerenciador
de lock Classic
ib_lock_mgr f b_lock_mgr Linux Cont role
Superserver ibmgr.bin f bmgr.bin Linux Binário Superserver ibserver f bserver Linux Arquivo de Conf iguração isc_conf ig f irebird.conf Linux Bibliot eca
Client e
Libgds.so libf bclient .so
libf bembed.so
Client e remot o “ Thread-saf e” e client e TCP/ IP local loopback para Superserver
Client e local (mono usuário, não “ t hread-saf e” ) para Classic Linux Symlink para
Bibliot eca client e para Compat ibilida-de
N/ A libgds.so
Windows Guardian ibguard.exe f bguard.exe Windows Binário
Superserver
ibserver.exe f bserver.exe Não t em suport e a SMP. Windows Binário
Classic
N/ A f b_inet _server.e xe
Conexões locais Windows não disponíveis. TCP/ IP, Net BEUI OK. Suport e a SMP.
Plataforma Módulo Firebird 1. 0 Firebird 1. 5 Notas especiais
Windows Bibliot eca Client e
gds32.dll f bclient .dll Os ut ilit ários do servidor de versão 1.5, e t odas as novas aplicações, apenas necessit am da f bclient .dll.
Vej a as not as a seguir sobre compat ibilidade do gds32.dll para aplicações ant igas.
Windows Bibliot eca Client e para compat ibilida-de N/ A gds32.dll Windows Arquivo de Conf iguração ibconf ig f irebird.conf
Windows Local IPC port Int erBaseAPI FirebirdAPI Com as conf igurações padrões não é possível est abelecer conexões locais com a versão ant erior da bibliot eca client e (gds32.dll). Se necessário, o servidor pode ser conf igurado para usar o nome ant igo do mapa IPC, via f irebird.conf . Windows “ Regist ry key”
Padrão HKLM\SOFTWARE\ Borland\Int erBase HKLM\SOFTWAR E\Firebird Proj e ct \Firebird Serv er\Inst ances
O diret ório é armazenado no parâmet ro "Def ault Inst ance". i.e., não exist e mais a chave "Current Version", e a chave "Root Diret ory" f oi subst it uída por "Def ault Inst ance".
No Windows os novos nomes dos serviços são “ Firebird Guardian – Def ault Inst ance” e “ Firebird Server – Def ault Inst ance” .
Compatibilidade
E
E
s
s
t
t
r
r
u
u
t
t
u
u
r
r
a
a
E
E
m
m
D
D
i
i
s
s
c
c
o
o
(
(
O
O
n
n
-
-
D
D
i
i
s
s
k
k
s
s
t
t
r
r
u
u
c
c
t
t
u
u
r
r
e
e
-
-
O
O
D
D
S
S
)
)
A Est rut ura Em Disco do Firebird 1.5 f oi designada como 10.1. Est a pequena at ualização do ODS f oi necessária pelos seguint es mot ivos :
- Três novos índices nas t abelas de sist ema
- Pequenas alt erações no BLR de dois t riggers de sist ema - Melhorias na codif icação do RDB$TRIGGER_TYPE.
Algumas out ras novas f uncionalidades que requerem alt erações na ODS f oram adiadas para a versão 2. At é lá, será possível t ransport ar diret ament e bases de dados Firebird 1.0.x. Tenha uma cópia t est ada das bases Firebird 1.0.x ant es de t ransf eri-las para um servidor 1.5.
B
B
a
a
s
s
e
e
d
d
e
e
D
D
a
a
d
d
o
o
s
s
I
I
n
n
t
t
e
e
r
r
B
B
a
a
s
s
e
e
™
™
Caso queira “ brincar” com o Firebird usando uma base de dados Int erBase, e pret enda revert er a base para o Int erbase mais t arde, f aça um backup ut ilizando a versão correspondent e do gbak do Int erbase. Para começar a t rabalhar com o Firebird 1.5, ut ilize o gbak dest e para f azer o rest ore do seu backup. O “ Operat ions Guide” da Document ação do Int erBase® 6.0 bet a cont ém a sint axe dos comandos do ut ilit ário gbak para backup e rest ore.
As bases de dados do IB 7.x e provavelment e do IB 6.5 poderão t rabalhar incorret ament e depois de migradas para o FB 1.5 via backup/ rest ore, se algumas das novas f uncionalidades específ icas do IB t iverem sido ut ilizadas.
L
L
o
o
c
c
a
a
l
l
e
e
N
N
o
o
m
m
e
e
s
s
d
d
e
e
A
A
r
r
q
q
u
u
i
i
v
v
o
o
Nest a versão, uma quant idade subst ancial de arquivos f oi renomeada, f rut o do t rabalho da subst it uição de nomes herdados pelo Int erBase® 6. Leia a secção de Local e Nomes de Arquivos para obt er as descrições e algumas recomendações.
E
E
x
x
e
e
c
c
u
u
ç
ç
ã
ã
o
o
S
S
i
i
m
m
u
u
l
l
t
t
â
â
n
n
e
e
a
a
d
d
e
e
S
S
e
e
r
r
v
v
i
i
d
d
o
o
r
r
e
e
s
s
As alt erações ef et uadas nos nomes dos obj et os de sist ema permit em que o Firebird 1.5 sej a inst alado e ut ilizado numa máquina que possua o Int erBase ou o Firebird 1.0.x inst alado. No Windows, o FB 1.5 ainda usa out ra chave de regist ro. Se o servidor f or conf igurado para usar out ras port as de rede, é possível execut ar várias inst âncias do servidor simult aneament e, ou execut ar a versão 1.5 ao concorrent ement e com o IB ou o FB 1.0.x.
V
V
o
o
l
l
t
t
a
a
n
n
d
d
o
o
a
a
o
o
F
F
i
i
r
r
e
e
b
b
i
i
r
r
d
d
1
1
.
.
0
0
.
.
x
x
Devido ao enorme número de erros resolvidos, o comport ament o da base de dados pode variar se f or f eit o um “ downgrade” de uma base v.1.5 para v.1.0.x. Concret ament e, caso sej am criadas chaves primárias, únicas ou est rangeiras como “ const raint s” , os valores padrões dos nomes dos índices serão incompat íveis com a v.1.0.x. Serão publicados arquivos README det alhando est es casos, na medida em que eles ocorrerem.
C
C
o
o
m
m
p
p
a
a
t
t
i
i
b
b
i
i
l
l
i
i
d
d
a
a
d
d
e
e
s
s
e
e
m
m
L
L
i
i
n
n
u
u
x
x
Devido a um hist órico de problemas envolvendo o compilador GNU C++, as versões de Linux do Firebird 1.5 requerem versões glibc superiores às que eram usadas ant eriorment e. Ist o f az com que,
execut ar a versão 1.5. O quadro abaixo pode ser usado como ref erência. Porém, agradecemos t oda a inf ormações que possam ser f ornecidas. Por f avor, compart ilhe a sua experiência com est as e out ras dist ribuições linux no f orum f irebird-devel.
Distribuição Nível Classic Superserver
Red Hat 7.x Não Não
8.0 Sim Sim
9.0 Sim Sim
Mandrake 8.x Não Não
9.0, 9.1, 9.2 Sim Sim
SuSE 7.3 Sim – pacot es de inst alação libgcc-3.2-44.i586.rpm & libst dc++-3.2-44.i586.rpm ant es de inst alar o Firebird 1.5.
Desconhecido
Extensões à Linguagem
T
T
I
I
P
P
O
O
S
S
D
D
E
E
C
C
A
A
M
M
P
P
O
O
S
S
(1.5) Novos tipos de Campos SQL Nativos
BIGINTTipo numérico int eiro de 64 bit s, compat ível SQL99, sinalizado e de escala zero. Disponível apenas no dialet o 3.
Exemplo (s)
i)
DECLARE VARIABLE VAR1 BIGINT;
ii)
CREATE TABLE TABLE1 (FIELD1 BIGINT);
M
M
E
E
T
T
A
A
D
D
A
A
D
D
O
O
S
S
(1.5) Melhorias a “named constraints”
Dmit r y YemanovOs índices que f orçam “ named const raint s” podem agora t er um nome at ribuído, com ident if icadores def inidos pelo usuário.
Em versões ant eriores, embora f osse possível at ribuir um nome a “ const raint s” do t ipo PRIMARY, FOREIGN KEY e UNIQUE, o ident if icador do índice gerado aut omat icament e era def inido pelo sist ema, p.ex. RDB$FOREIGN13 e não podia ser alt erado. Est a cont inua a ser a regra quando est a nova f uncionalidade não é ut ilizada.
Porém, f oram adicionadas ext ensões à linguagem para permit ir que :
a) um índice gerado aut omat icament e pelo sist ema receber aut omat icament e como ident if icador o mesmo nome que a “ const raint ” que ele f orça.
b) um índice que f orça uma “ const raint ” , com ou sem nome, possua ele mesmo um nome at ribuído por um ident if icador e opcionalment e ser const ruído em ordem descendent e.
NOTA: Não é ainda possível ut ilizar um índice pré-exist ent e.
Sintaxe ...
[ADD] CONSTRAINT [<identificador-da-constraint>] <tipo-de-constraint > <definição-de-constraint>
[USING [ASC[ENDING] | DESC[ENDING]] INDEX <nome_do_indice>]
Aviso: Tem que garant ir que os índices “ f oreign key” e “ primary key” usam o mesmo tipo de ordenação (DESC | ASC).
Exemplos
CREATE TABLE ATEST ( ID BIGINT NOT NULL, DATA VARCHAR(10)); COMMIT;
A declaração seguint e irá criar uma “ primary key const raint ” com o nome PK_ATEST e um índice, descendent e, com o nome IDX_PK_ATEST:
ALTER TABLE ATEST
ADD CONSTRAINT PK_ATEST PRIMARY KEY(ID) USING DESC INDEX IDX_PK_ATEST;
COMMIT;
ii) Uma alt ernat iva a i) seria:
CREATE TABLE ATEST ( ID BIGINT NOT NULL, DATA VARCHAR(10),
CONSTRAINT PK_ATEST PRIMARY KEY(ID) USING DESC INDEX IDX_PK_ATEST;
iii) Est a declaração cria a t abela ATEST com uma primary key PK_ATEST. O índice correspondent e t erá o mesmo nome: PK_ATEST.
CREATE TABLE ATEST ( ID BIGINT NOT NULL, DATA VARCHAR(10),
CONSTRAINT PK_ATEST PRIMARY KEY(ID));
(1.5) Triggers de Multi Ações
Dmit r y YemanovOs Triggers f oram melhorados para permit ir o uso condicional em várias operações.
Sintaxe
CREATE TRIGGER nome FOR tabela [ATIVE | INATIVE]
{BEFORE | AFTER} <ação múltipla > [POSITION número]
AS Corpo_do_Trigger
<ação múlt ipla> ::= <ação simples> [OR <ação simples> [OR <ação simples>]] <ação simples> ::= {INSERT | UPDATE | DELETE}
Exemplos
i)
CREATE TRIGGER TRIGGER1 FOR TABLE1 [ATIVE] BEFORE INSERT OR UPDATE AS ...;