Jump to content
Fórum Script Brasil
  • 0

Espelhar determinada tabela do banco de dados


Wendell Christian

Question

Olá galera, estou com uma dúvida se é possível ser resolvida. Gostaria de saber se é possível espelhar uma tabela em um banco de dados para outra tabela em outro banco de dados. Meu caso é o seguinte, tenho a intenção de criar duas lojas virtuais, porém a segunda loja iria utilizar o mesmo estoque e produtos da primeira, mas os clientes e as encomendas seriam diferentes. Então gostaria de saber se é possível fazer um espelhamento da tabela de produtos de uma loja para a tabela de produtos da outra loja através do banco de dados MySQL, ou seja, quando o estoque de determinado produto for alterado na primeira loja, consequentemente seria alterado na segunda loja. Aguardo respostas, abraços.

Link to comment
Share on other sites

3 answers to this question

Recommended Posts

  • 0
'Wendell Christian'

Se estiverem na mesma instância, crie a estrutura da tabela no outro banco de dados e alimente-a através de triggers na tabela de origem.

Certo, eu tenho criado a estrutura da tabela no outro banco de dados, como faço para fazer esta alimentação através de triggers, conheço apenas o básico de mysql, teria algum tópico que eu poderia utilizar? Agradeço a sua atenção.

Link to comment
Share on other sites

  • 0
...

Certo, eu tenho criado a estrutura da tabela no outro banco de dados, como faço para fazer esta alimentação através de triggers, conheço apenas o básico de mysql, teria algum tópico que eu poderia utilizar? Agradeço a sua atenção.

Exemplo: Criando os bancos e as tabelas:

create database original;
create database espelho;
use original;
create table minhatabela(
id int,
nome varchar(20),
primary key(id))engine=myisam;
use espelho;
create table minhatabela(
id int,
nome varchar(20),
primary key(id))engine=myisam;
use original;
Criando o trigger de insert
DELIMITER $$;

DROP TRIGGER `original`.`tin_minhatabela`$$

CREATE TRIGGER `original`.`tin_minhatabela` AFTER INSERT on `original`.`minhatabela`
FOR EACH ROW BEGIN
   insert into `espelho`.`minhatabela`(id, nome)
   values (new.id, new.nome);
END$$

DELIMITER;$$
Criando o trigger de update
DELIMITER $$;

DROP TRIGGER `original`.`tup_minhatabela`$$

CREATE TRIGGER `original`.`tup_minhatabela` AFTER UPDATE on `original`.`minhatabela`
FOR EACH ROW BEGIN
   update `espelho`.`minhatabela`
   set nome = new.nome
   where  id = new.id;
END$$

DELIMITER;$$
Criando o trigger de delete:
DELIMITER $$;

DROP TRIGGER `original`.`tdel_minhatabela`$$

CREATE TRIGGER `original`.`tdel_minhatabela` BEFORE DELETE on `original`.`minhatabela`
FOR EACH ROW BEGIN
   delete `espelho`.`minhatabela`
   where  id = old.id;
END$$

DELIMITER;$$

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...