Pessoal preciso criar uma trigger que copie os dados da tabela services para a tabela history_services quando quando houver um insert ou um delete.
Exemplo:
Tabela services
CREATE TABLE services
(
id SMALLINT NOT NULL AUTO_INCREMENT,
name VARCHAR(30) NOT NULL,
request_date DATETIME NOT NULL,
value DECIMAL(10,2) NOT NULL,
PRIMARY KEY(id)
)engine=InnoDB;
Tabela history_services
CREATE TABLE services
(
id SMALLINT NOT NULL AUTO_INCREMENT,
name VARCHAR(30) NOT NULL,
request_date DATETIME NOT NULL,
cancellation_date DATETIME NOT NULL,
value DECIMAL(10,2) NOT NULL,
status VARCHAR(15) NOT NULL,
PRIMARY KEY(id)
)engine=InnoDB;
Como pode-se observar as tabelas são praticamente iguais, o que as diferencia é que a tabela history_services tem os campos cancellation_date obviamente corresponde a data de cancelamento do serviço e o status de define se o serviço esta ativo ou cancelado.
Desta forma eu gostaria de criar uma trigger que:
- Quando houver um insert na tabela services ela copie os dados da linha em questão para history_service e atualize o status para ATIVO
- Quando houver um delete na tabela services ela copie os dados da linha em questão para history_service e atualize o estatus para INATIVO e atualize o campo cancellation_date com a date e hora atual.
Pessoal eu tentei alguns exemplos, mas estou meio enforcado em tempo e prazo então estou pedindo ajuda aqui, mesmo sabendo que o certo seria eu me aprofundar mais no assunto..
Pergunta
cleber_mav
Pessoal preciso criar uma trigger que copie os dados da tabela services para a tabela history_services quando quando houver um insert ou um delete.
Exemplo:
Tabela services
CREATE TABLE services
(
id SMALLINT NOT NULL AUTO_INCREMENT,
name VARCHAR(30) NOT NULL,
request_date DATETIME NOT NULL,
value DECIMAL(10,2) NOT NULL,
PRIMARY KEY(id)
)engine=InnoDB;
Tabela history_services
CREATE TABLE services
(
id SMALLINT NOT NULL AUTO_INCREMENT,
name VARCHAR(30) NOT NULL,
request_date DATETIME NOT NULL,
cancellation_date DATETIME NOT NULL,
value DECIMAL(10,2) NOT NULL,
status VARCHAR(15) NOT NULL,
PRIMARY KEY(id)
)engine=InnoDB;
Como pode-se observar as tabelas são praticamente iguais, o que as diferencia é que a tabela history_services tem os campos cancellation_date obviamente corresponde a data de cancelamento do serviço e o status de define se o serviço esta ativo ou cancelado.
Desta forma eu gostaria de criar uma trigger que:
- Quando houver um insert na tabela services ela copie os dados da linha em questão para history_service e atualize o status para ATIVO
- Quando houver um delete na tabela services ela copie os dados da linha em questão para history_service e atualize o estatus para INATIVO e atualize o campo cancellation_date com a date e hora atual.
Pessoal eu tentei alguns exemplos, mas estou meio enforcado em tempo e prazo então estou pedindo ajuda aqui, mesmo sabendo que o certo seria eu me aprofundar mais no assunto..
Desde já agradeço à ajuda de vocês..
Vlw!!
Link para o comentário
Compartilhar em outros sites
2 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.