Tabela contendo dados de outras tabelas

4 respostas
A

Ola pessoal sou novato ainda em banco de dados, estou com uma duvida se é possível criar uma tabela no MYSQL que puxe todos os dados automaticamente de outras tabelas.
Por exemplo, quero que minha tabela X puxe os dados que forrem inseridos na tabela A e B automaticamente, sendo as estrutura iguais, isso é possível??

Vlw! :wink:

4 Respostas

mfidelis

Usa SELECT dentro dos INSERT…

INSERT INTO CONTA(ID, NOME, ENDERECO) VALUES
(1, (SELECT NOME FROM CLIENTE WHERE ID = 1),(SELECT ENDERECO FROM CLIENTE WHERE ID = 1)),
(2, (SELECT NOME FROM CLIENTE WHERE ID = 2),(SELECT ENDERECO FROM CLIENTE WHERE ID = 2)),
(3, (SELECT NOME FROM CLIENTE WHERE ID = 3),(SELECT ENDERECO FROM CLIENTE WHERE ID = 3));
wagnerfrancisco

Você pode usar triggers. Ao inserir em uma determinada tabela, sua trigger é acionada e insere também em outra tabela.

Você pode usar views. Neste caso você não vai ter uma tabela “física”, mas vai ser semelhante. Você cria uma consulta e os dados dela são disponibilizados na view (que você usa como se fosse uma tabela). Se a estrutura das tuas tabelas a e B são iguais, você pode fazer um select com union (que agrupa os dados nas duas) e o resultado deste select vai ser a view X.

A
wagnerfrancisco:
Você pode usar triggers. Ao inserir em uma determinada tabela, sua trigger é acionada e insere também em outra tabela.

Você pode usar views. Neste caso você não vai ter uma tabela "física", mas vai ser semelhante. Você cria uma consulta e os dados dela são disponibilizados na view (que você usa como se fosse uma tabela). Se a estrutura das tuas tabelas a e B são iguais, você pode fazer um select com union (que agrupa os dados nas duas) e o resultado deste select vai ser a view X.

Legal,

Acho que no meu caso tem que ser por Triggers, pois serão criadas varias tabelas e todas tem que gravar os dados nesta tabela X que descrevi.

agora me diz uma coisa, nas minhas tabelas fornecedoras existem as colunas codigo,numero, msg e na minha tabela X que recebe,existe as colunas codigo,numero,msg e ID.
Gostaria que o codigo das tabelas forncedoras fossem gravados na coluna ID da tabela X mais pelo codigo abaixo não esta dando certo.

DELIMITER $$;

CREATE TRIGGER `test`.`insert_fila` BEFORE INSERT on `test`.`ag_willian`
FOR EACH ROW BEGIN
   insert into fila(`numero`, `msg`, `usuario`, `idcodigo`)
   values(new.numero, new.msg, new.usuario, new.codigo);
END$$;

Oque esta errado? :?

A

Acho que o problema é que o campo codigo é auto incremento, qual é o procedimento para repassar um campo com autoincremento ?

Vlw !

Criado 23 de julho de 2012
Ultima resposta 24 de jul. de 2012
Respostas 4
Participantes 3