Problemas com Trigger

4 respostas
victorgilc

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

4 Respostas

lucas_carvalho100

Você deve ter escrito algo errado ou não criou a tabela, o erro diz que a tabela não existe.

AlissonSchneider

Ele tá dizendo que não existe a tabela

não sei se isso lhe ajudou

abrass

:wink:

victorgilc

Opa, erro de digitação :smiley:

Obrigado pela ajuda

AlissonSchneider

victorgilc:
Opa, erro de digitação :smiley:

Obrigado pela ajuda

Boa Sorte

t+

abras

:wink:

Criado 19 de janeiro de 2011
Ultima resposta 19 de jan. de 2011
Respostas 4
Participantes 3