..


Links Patrocinados

UPDATE de duas ou mais tabelas

Artigo escrito por Max Bossi

Usando o comando UPDATE, temos a oportunidade de agir sobre os registros existentes e modificados.
Suponha, por exemplo, têm, em nossa DB, phone_numbers uma tabela estruturada da seguinte forma:

  • nome
  • telefone
e dizer que o nosso. tabela já está preenchida com três registros:

nome telefone
Mario Rossi 123.456789
Antonio Bianchi 987.654321
Claudio Verdi 321.654987

Agora vamos dizer que o Sr. John Smith tinha se mudado e, portanto, mudou o número de telefone. Para atualizar o nosso catálogo de telefones que usamos uma consulta como esta:





 ATUALIZAÇÃO







 phone_numbers







 Setembro







 Telefone = '213 0,698547 '







 ONDE







 name = 'John Doe'



Até agora nada de novo.
Agora, suponha que temos uma outra tabela chamada endereços estruturado da seguinte forma:
  • nome
  • por
  • cidade
  • prov
Suponha, então, que esta tabela já está preenchida com 3 registros correspondentes aos endereços de três amigos já está presente em outra tabela:

nome por citações prov
Mario Rossi Via Roma 11 Turim TO
Antonio Bianchi Via Garibaldi 2 Gallarate VA
Claudio Verdi Piazza Cavour 4 Como CO

Após esta longa introdução, chegamos à pergunta que dá o título a este artigo: Como posso atualizar duas tabelas ao mesmo tempo, ou seja, utilizando uma única consulta em vez de dois?
Simples, usando um JOIN na etapa UPDATE!

Voltando ao exemplo, primeiro use uma consulta como esta:






 ATUALIZAÇÃO







 phone_numbers







 INNER JOIN







 endereços







 ON







 numeri_di_telefono.nome = indirizzi.nome







 Setembro







 numeri_di_telefono.telefono = 0,698547 '213 ',







 "Praça da República 5 '= indirizzi.via,







 indirizzi.citta = 'London',







 indirizzi.prov = 'MI'







 ONDE







 "John Doe" numeri_di_telefono.nome =



Depois de executar o UPDATE consulta SELECT verificada por dois distintos em duas tabelas. Aqui estão seus resultados (em amarelo):

1) Tabela phone_numbers

 



 SELECT * FROM phone_numbers

 
nome telefone
Mario Rossi 213.698547
Antonio Bianchi 987.654321
Claudio Verdi 321.654987

1) tabela de endereços
 



 SELECT * FROM endereços

 
nome por citações prov
Mario Rossi 5 Praça da República Milan MI
Antonio Bianchi Via Garibaldi 2 Gallarate VA
Claudio Verdi Piazza Cavour 4 Como CO

A vantagem prática de uma técnica de atualizar várias tabelas, as relações entre eles, usando JOINs é reduzir a carga de trabalho do servidor com base em um princípio simples: "a consulta é melhor do que dois".

Na mesma categoria ...
E-Learning
MS Access (Avançado) MS Access (Avançado)
Saiba como criar e gerenciar bancos de dados com rapidez e facilidade. A partir de 29 €.
MySQL (Curso) MySQL (Curso)
Gestão de banco de dados open-source. A partir de 39 €.
SQL e Banco de Dados (Curso) SQL e Banco de Dados (Curso)
Criar e gerenciar bancos de dados relacionais. A partir de 39 €.
Links Patrocinados