Jump to content


Photo

Triggers


  • Faça o login para participar
1 reply to this topic

#1 Vitor Alves

Vitor Alves

    Eu mesmo!

  • Ex-Admins
  • 1615 posts
  • Sexo:Masculino
  • Localidade:Itu/SP - Brasil - 3º Mundo

Posted 28/05/2013, 10:40

Boa tarde galera, estou com a ideia de montar um sistema para controle de chamados de helpdesk, a lógica seria a seguinte:

O Analista abre um chamado X, este chamado pode ter diversos tramites, ou seja, X.1/X.2/X.3... assim vai. Para montar isso pensei em seguintes tabelas:

create table func (
	cp_codfun int NOT NULL
	constraint pk_func primary key,
	cp_nomfun varchar(50) NOT NULL,
	cp_email varchar(50) NULL
	)

create table cham (
	cp_codcham int not null identity (1,1)
	constraint pk_cham primary key,
	cp_datini date not null,
	cp_codfun int not null
	constraint fk_cham_func foreign key
	references func(cp_codfun),
	cp_nomcli varchar(50) not null,
	cp_nomcont varchar (30) not null,
	cp_desprob text not null,
	cp_status varchar(10) not null
	constraint ck_status check (cp_status in ('aberto','fechado','aguardando'))
	)
	
create table tram (
	cp_codtra int not null
	constraint pk_tram primary key,
	cp_numtra int not null,
	cp_codcall int not null
	constraint fk_tram_cham foreign key
	references cham(cp_codcham),
	cp_dattra date not null
	)

A tabela de tramites, teria ligação com a tabela de chamados. A numeração do tramite tem que ser zerada sempre que mudar a numeração do chamado, perguntando em um lugar e outro me disseram que isso deve ser feito por uma trigger, porém, não sei nada sobre triggers.

Alguém sabe me dizer como criar uma ou me indicar um local onde eu possa ler a respeito de como cria-la?

Desde já agradeço a atenção.

Galera, procurando e xeretando acabei chegando a isso aqui:

DROP TRIGGER IF EXISTS `HISCHM`;

DELIMITER //

CREATE TRIGGER `HISCHM` BEFORE INSERT ON `tram`

 FOR EACH ROW BEGIN

declare numero int default 0;

 Set numero = (select max(cp_numtra) From tram where cp_codcall = new.cp_codcall);


   if ((numero <= 0) or (numero is null))then
      set numero = 1;

   else
      set numero = numero + 1;

   end if;

   set new.cp_numtra = numero;

END
//
DELIMITER ;

Mas não está funfando e não estou conseguindo descobrir o que pode ser?

Alguém tem uma luz divida de sabedoria?

Abraços
  • Gheroabs likes this
Vitor T. Alves <- BLOG | FEEDS -> Vitor T. Alves
Analista de Desenvolvimento

#2 RonsisM

RonsisM

    Super Veterano

  • Usuários
  • 15724 posts
  • Sexo:Masculino
  • Localidade:Plovdiv

Posted 13/09/2017, 02:24

Clomid From India cialis Come Comprare Priligy
Cialis 5mg Or 10mg Sildenafil 100mg Tablets Silagra Brand Name Viagra Cumwithuscom
Cialis Vente Tunisie cheap cialis When Alli Back In Stock




0 user(s) are reading this topic

0 membro(s), 0 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq