1546027450-1546027450-sql
Ensina estrutura básica de SQL
Ensina estrutura básica de SQL
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
83 - Capítulo 4 – DML – DATA MANIPULATION LANGUAGE
No exemplo apresentado a seguir veremos como é possível atualizar
a tabela CLIENTE a partir de dados mais atualizados encontrados na
tabela CLIENTE_2. E não apenas isso, mas também como inserir na
tabela CLIENTE os dados que constam na tabela CLIENTE_2 que não
são encontrados na tabela CLIENTE.
Em linhas gerais, informamos primeiro que queremos mesclar os dados
da tabela CLIENTE, referenciada através do apelido C, com os dados
da tabela CLIENTE_2, referenciada através do apelido C_2. A seguir
é colocada a condição: os códigos dos clientes devem ser iguais nas
duas tabelas (C.CODIGO_CLIENTE = C_2.CODIGO_CLIENTE ). Quando
isso ocorrer (MATCHED), os dados da tabela CLIENTE serão atualizados
conforme os dados da tabela CLIENTE_2. Por outro lado, quando não
forem encontrados valores correspondentes aos códigos de clientes na
tabela CLIENTE que sejam idênticos aos da tabela CLIENTE_2, os dados
encontrados na tabela CLIENTE_2 serão inseridos na tabela CLIENTE.
MERGE INTO CLIENTE C
USING CLIENTE_2 C_2 ON (
C.CODIGO_CLIENTE = C_2.CODIGO_CLIENTE)
WHEN MATCHED THEN
UPDATE
SET
C.NOME_CLIENTE = C_2.NOME_CLIENTE,
C.DATA_NASC_CLIENTE = C_2.DATA_NASC_CLIENTE,
C.UF_CLIENTE = C_2.UF_CLIENTE
WHEN NOT MATCHED THEN
INSERT
(C.CODIGO_CLIENTE, C.NOME_CLIENTE,
C.DATA_NASC_CLIENTE, C.UF_CLIENTE)
VALUES
(C_2.CODIGO_CLIENTE, C_2.NOME_CLIENTE,
C_2.DATA_NASC_CLIENTE, C_2.UF_CLIENTE);
O resultado será, portanto, uma tabela CLIENTE completamente
atualizada. Trata-se de um comando mais complexo, porém muitíssimo
útil em situações conforme a que acabamos de apresentar.