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 .