Estou finalizando um sistema aqui e estou com dificuldades para criar umTriggerou até mesmo umaStored Procedure, não sei qual a forma mais correta ou indicada nesse caso.
Tenho uma tabela chamada <vendas> que armazena os dados de uma venda.
CREATE TABLE IF NOT EXISTS `gfinan`.`vendas`(`id_venda` INT NOT NULL AUTO_INCREMENT,`cpf` CHAR(11) NOT NULL,`placa` CHAR(7) NOT NULL,`id_pagamento` INT NOT NULL,`valor` DECIMAL(10,2) NOT NULL,`parcelas` INT NOT NULL,`data` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,`cnpj` CHAR(14) NOT NULL,`id_usuario` INT NOT NULL,`status` CHAR(1) NOT NULL DEFAULT 'A',
PRIMARY KEY (`id_venda`),
INDEX `fk_vendas_veiculos_idx`(`placa` ASC),
INDEX `fk_vendas_usuarios_idx`(`id_usuario` ASC),
INDEX `fk_vendas_clientes_idx`(`cpf` ASC),
INDEX `fk_vendas_empresas_idx`(`cnpj` ASC),
INDEX `fk_vendas_pagamentos_idx`(`id_pagamento` ASC),
ENGINE =InnoDB
O campo <id_pagamento> identifica a forma de pagamento em uma venda, sendo a vista ou através de notas promissórias.
Quando for informado por exemplo o valor total deR$30.000,00pagos em12 notas promissórias, ao gravar os dados na tabela <vendas>, preciso que o banco insira na tabela <promissorias> 12 registros contendo, as datas de pagamentos, o numero da nota promissória e o valor de cada uma delas com base nos dados gravados na tabela anterior.
A estrutura da tabela <promissorias> é essa:
CREATE TABLE IF NOT EXISTS `picinin`.`promissorias`(`id_promissoria` INT NOT NULL AUTO_INCREMENT,`vencimento` DATETIME NOT NULL,`numeracao` INT NOT NULL,`valor` DECIMAL(10,2) NOT NULL,`emissao` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,`id_venda` INT NOT NULL,`status` CHAR(1) NOT NULL DEFAULT 'E',
PRIMARY KEY (`id_promissoria`),
INDEX `fk_promissorias_vendas1_idx`(`id_venda` ASC),
ENGINE =InnoDB
Preciso também que esses dados seja excluídos caso a venda seja cancelada.
Nunca precisei fazer algo assim e estou com muita dificuldade, podem me orientar?
Pergunta
flaviokowalske
Estou finalizando um sistema aqui e estou com dificuldades para criar um Trigger ou até mesmo uma Stored Procedure, não sei qual a forma mais correta ou indicada nesse caso.
Tenho uma tabela chamada <vendas> que armazena os dados de uma venda.
O campo <id_pagamento> identifica a forma de pagamento em uma venda, sendo a vista ou através de notas promissórias.
Quando for informado por exemplo o valor total de R$30.000,00 pagos em 12 notas promissórias, ao gravar os dados na tabela <vendas>, preciso que o banco insira na tabela <promissorias> 12 registros contendo, as datas de pagamentos, o numero da nota promissória e o valor de cada uma delas com base nos dados gravados na tabela anterior.
A estrutura da tabela <promissorias> é essa:
Preciso também que esses dados seja excluídos caso a venda seja cancelada.
Nunca precisei fazer algo assim e estou com muita dificuldade, podem me orientar?
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.