Software  
 
Conhecimento computador >> Software >> Software de banco de dados >> 
Como fazer um Deferrable Restrição no Oracle
Restrições são projetados para evitar acidentes no manuseio de dados e para preservar a integridade dos dados . Em alguns casos , no entanto , pode ser necessário protelar restrições , de forma que não efectivamente executar as suas regras , até uma determinada condição . Por exemplo, é possível adiar as regras de um constrangimento para ativar somente quando um " commit" foi solicitado. Instruções
1

Criar duas tabelas em SQLPlus demonstrar limitações diferimento da seguinte forma:

CRIAR TABLE teste (

test_id INTEGER PRIMARY KEY,

foreign_id INTEGER NOT NULL );

CRIAR test2 mesa (

test2_id INTEGER PRIMARY KEY ,

foreign2_id INTEGER NOT NULL

);
< br > 2

alterar as tabelas em SQLPlus para adicionar restrições de chave estrangeira para o outro como se segue:

ALTER TABLE teste aDD CONSTRAINT test2REF

FOREIGN KEY ( foreign_ID ) REFERÊNCIAS teste2 ( test2_ID )

INICIALMENTE FUTUROS DEFERRABLE ;

ALTER TABLE ADD CONSTRAINT test2 testREF

FOREIGN KEY teste ( foreign2_ID ) Referências ( test_ID )

DEFERRABLE INICIALMENTE diferido;
Insere registros
3

em ambas as tabelas em SQLPlus . Isso mostra que com uma restrição adiável , as linhas podem ser adicionadas , apesar das restrições de chaves estrangeiras :

INSERT INTO test VALUES (1, 2);

INSERT INTO teste2 VALUES (2 , 1);
4

Commit a informação no comando SQLPlus com :

Commit ;

Isto irá completar a operação e as linhas serão adicionadas para ambas as tabelas < br. >
5

Demonstrar como ele iria falhar , executando todos os comandos novamente em uma única operação , mas sem a restrição adiada. Nos SQLPlus comando digite:

- Primeiro eliminar as tabelas

Teste de queda mesa restrições em cascata;

gota mesa test2 restrições em cascata;

- . - Agora entre todos os comandos anteriores, mas sem as limitações diferimento da seguinte forma:

CRIAR TABLE teste (

test_id INTEGER PRIMARY KEY,

foreign_id INTEGER NOT NULL

);

CRIAR test2 mesa (

test2_id INTEGER PRIMARY KEY ,

foreign2_id INTEGER NOT NULL

);

ALTER teste TABLE ADD CONSTRAINT test2REF

FOREIGN KEY ( foreign_id ) REFERÊNCIAS teste2 ( test2_id );

ALTER TABLE ADD CONSTRAINT test2 testREF

FOREIGN KEY teste ( foreign2_id ) Referências ( test_id ) ;

INSERT INTO test VALUES (1, 2 );

INSERT INTO teste2 VALUES (2 , 1);

Esta versão do script irá falhar como as restrições têm não foram adiadas à espera de um " COMMIT " comando .

Anterior :

Próximo : No
  Os artigos relacionados
·Como remover Alias ​​em um driver ODBC IBM DB2 
·Como inserir uma lista de SharePoint em VBA 
·Como incluir nomes de coluna no BCP 
·O que é um ataque de SQL 
·Como importar DB para Paradox 
·Árvore Caminho - Based Pesquisando Métodos 
·Como converter arquivos FOL 
·A Oracle trava ao criar um banco de dados 
·Tipos de saída fatura no SAP 
·Como usar o BCP do MS SQL 
  Artigos em destaque
·Como ocultar um artista em Serato 
·Como gravar um CD Lightscribe 
·Como desinstalar o Defender Pro Sem o CD 
·Como remover um WD Anywhere Backup 
·Como fazer listas de reprodução Genius no iTunes 
·Estruturas básicas de SQL 
·Como remover Infostealer.Gamepass 
·A bateria de backup no meu Powerbook G4 não cobrará 
·Como remover SuperAntiSpyware 
·As vantagens de Animação Web 
Cop e direita © Conhecimento computador http://ptcomputador.com Todos os Direitos Reservados