Olá pessoal, estou com um probleminha com triggers no MySQL e gostaria da ajuda dos senhores
O erro é o seguinte - 1146 Table ‘bdmovimento_financeiro.movimento_financeiro’ doesn’t exist
segue as triggers:
create trigger insert_movimento_financeiro after insert on movimento
for each row begin
declare banco integer;
declare conta integer;
declare agencia integer;
declare notaf integer;
declare clien varchar(100);
declare idclien integer;
declare codcli integer;
declare tot_pago decimal(10,2);
declare entsaida char(1);
declare qtos integer;
select id_banco into banco from tb_banco where id_banco=new.cod_banco;
select cod_conta into conta from tb_banco where id_banco=new.cod_banco;
select cod_agencia into agencia from tb_banco where id_banco=new.cod_banco;
select nf into notaf from tb_nota where id_nota=new.cod_nota;
select cod_cliente into codcli from tb_nota where id_nota=new.cod_nota;
select nome into clien from tb_cliente where id_cliente=codcli;
select id_cliente into idclien from tb_cliente where id_cliente=codcli;
select ((new.valor*new.juros)-new.desconto) into tot_pago ;
select ent_saida into entsaida from tb_nota where id_nota=new.cod_nota;
select count(*) into qtos from movimento_financeiro where codigo=new.id_movimento;
if(qtos = 0) then
insert into movimento_finacenceiro(cod_banco, cod_agencia, num_conta, num_documento, cliente, id_cliente, valor, juros, desconto, total_pago, ent_saida, data_movimento) values (banco, agencia, conta, notaf, clien, idclien, new.valor, new.juros, new.desconto, tot_pago, entsaida, new.data);
end if;
end
create trigger insert_movimento_financeiro_novo after insert on movimento_financeiro
for each row begin
declare idnota integer;
declare qtos integer;
insert into tb_cliente(id_cliente, nome)
values (new.id_cliente, new.cliente);
insert into tb_nota(nf, ent_saida, cod_cliente)
values (new.num_documento, new.ent_saida, new.id_cliente);
insert into tb_banco(id_banco, cod_conta, cod_agencia)
values (new.cod_banco, new.num_conta, new.cod_agencia);
select id_nota into idnota from tb_nota where nf=new.num_documento and ent_saida=new.ent_saida and cod_cliente=new.id_cliente;
select count(*) into qtos from movimento where id_movimento=new.codigo;
if (qtos=0) then
insert into movimento(valor, juros, desconto, data, cod_nota, cod_banco)
values (new.valor, new.juros, new.desconto, new.data_movimento, idnota, new.cod_banco);
end if;
end
segue as tabelas:
create table movimento_financeiro
( codigo integer not null auto_increment,
cod_banco integer not null,
cod_agencia integer not null,
num_conta integer not null,
num_documento integer not null,
cliente varchar(100) not null,
id_cliente varchar(100) not null,
valor decimal(10,2) not null,
juros decimal(10,2) null,
desconto decimal(10,2) null,
total_pago decimal(10,2) not null,
ent_saida char(1) not null,
data_movimento date not null,
constraint pkcod primary key(codigo)
)engine=innodb;
create table tb_cliente
( id_cliente integer not null,
nome varchar(100) not null,
constraint pkid_cliente primary key(id_cliente)
)engine=innodb;
create table tb_banco
(
id_banco integer not null,
cod_conta integer not null,
cod_agencia integer not null,
constraint pkid_banco primary key(id_banco)
)engine=innodb;
create table tb_nota
(
id_nota integer not null auto_increment,
nf integer not null,
ent_saida char(1) not null,
cod_cliente integer not null,
constraint pkid_nota primary key(id_nota),
constraint fkcod_cliente foreign key(cod_cliente)
references tb_cliente(id_cliente)
on delete no action
on update cascade
)engine=innodb;
create table movimento
(
id_movimento integer not null auto_increment,
valor decimal(10,2) not null,
juros decimal(10,2) not null,
desconto decimal(10,2) not null,
data date not null,
cod_nota integer not null,
cod_banco integer not null,
constraint pkid_movimento primary key(id_movimento),
constraint fkcod_nota foreign key(cod_nota)
references tb_nota(id_nota)
on delete no action
on update cascade,
constraint fkcod_banco foreign key(cod_banco)
references tb_banco(id_banco)
on delete no action
on update cascade
)engine=innodb;
Obrigado

