Ir para conteúdo
Fórum Script Brasil
  • 0

somando mais um numero no resultado do select


cwarez

Pergunta

bom pessoal

to querendo fazer tpo assim

eu tenho uma tabela chamada

c_clicalista.......como os campos CLICA_ID , CONTRATO e NOME

to querendo simplesmente um select do ultimo CONTRATO registrado e adicionando mais 1

exemplo

o ultimo CONTRATO cadastrado é 0090 daí ele soma + 1, e eu cadastre no banco de dados...entendem?

tpo um auto_increment, mas eu não quero um auto_increment

quero apenas que some +1 no ultimo registro, para eu gerar a nova variavel $contrato e cadastrar no bd

entendem?

como posso fazer isso?

abraçoo

para falar a verdade

eu queria que o campo CONTRATO fosse gerado baseado no AUTO_INCREMENT `CLICA_ID`

por exemplo, `clica_id`= 80

daí contrato = 00080

dái gerando automatico, para cada cadastro feito no bd tem um numero de contrato

entendem?

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0
eu queria que o campo CONTRATO fosse gerado baseado no AUTO_INCREMENT `CLICA_ID`

por exemplo, `clica_id`= 80

daí contrato = 00080

dái gerando automatico, para cada cadastro feito no bd tem um numero de contrato

entendem?

Bom amigo, aquele trigger que eu lhe mostrei no fórum de MySQL resolve seu problema com apenas uma modificação, em vez de pegar o último `contrato` cadastrado e somar 1 (é o que está fazendo) você vai fazer ele pegar o último `clica_id` e somar 1, na verdade você nem precisa fazer isso porque com o trigger é possível fazer isso automático também:

Primeiro você precisa apagar o primeiro trigger:

drop trigger contratos_autoincrement;
Agora criando um novo que vai se basear na coluna `clica_id`
create trigger contratos_autoincrement before insert on c_clicalista for each row set NEW.contrato=(select ifnull( NEW.clica_id , ifnull( max( `clica_id` ) , 0 ) + 1 ) from c_clicalista);
Esse trigger ai, antes de inserir o novo registro, vai verificar se o seu insert está definindo um `clica_id` se estiver ele vai usar o `clica_id` definido no insert, senão vai pegar o último `clica_id` da tabela, somar 1 e gravar na tabela. Testando:
mysql> drop trigger contratos_autoincrement;
Query OK, 0 rows affected (0.00 sec)
mysql> create trigger contratos_autoincrement before insert on c_clicalista for each row set NEW.contrato=(select ifnull( NEW.clica_id , ifnull( max( `clica_id` ) , 0 ) + 1 ) from c_clicalista);
Query OK, 0 rows affected (0.00 sec)
Ai você insere seus registros normalmente:
INSERT INTO c_clicalista VALUES('45' , null , '87' , '' , '' , '' , 'mauricio' , '123456' , 'Casa de Ração Ponto Final' , '' , '' , 'maursantos@hotmail.com' , '3228 3150' , 'Av. Alpheu Ribeiro, 1291 Carapina Grande - Serra - ES' , '' , 'Ativado' , '');
INSERT INTO c_clicalista VALUES('44' , null , '45' , '' , '' , '' , 'Salão da Selma' , '123456' , 'Salão da Selma' , '' , '' , '' , '8811 - 1176' , 'Av. Alpheu Ribeiro, 1110 Carapina Grande - Serra - ES' , '' , 'Ativado' , '');
Depois é só testar para ver o resultado:
mysql> select * from c_clicalista;
+----------+----------+--------+--------+-----+--------------+-----------------+--------+-----------------------------+------+------------+------------------------+-------------+-------------------------------------------------------+------+---------+-----------+
| clica_id | contrato | cat_id | nome_1 | cpf | nome_contato | login           | senha  | nome                        | site | breve_desc | email                  | telefones   | como_chegar                                           | desc | status  | logomarca |
+----------+----------+--------+--------+-----+--------------+-----------------+--------+-----------------------------+------+------------+------------------------+-------------+-------------------------------------------------------+------+---------+-----------+
|       44 |     0044 | 45     |        |     |              | Salão da Selma | 123456 | Salão da Selma             |      |            |                        | 8811 - 1176 | Av. Alpheu Ribeiro, 1110 Carapina Grande - Serra - ES |      | Ativado |           |
|       45 |     0045 | 87     |        |     |              | mauricio        | 123456 | Casa de Ração Ponto Final |      |            | maursantos@hotmail.com | 3228 3150   | Av. Alpheu Ribeiro, 1291 Carapina Grande - Serra - ES |      | Ativado |           |
+----------+----------+--------+--------+-----+--------------+-----------------+--------+-----------------------------+------+------------+------------------------+-------------+-------------------------------------------------------+------+---------+-----------+
2 rows in set (0.00 sec)

Editado por neto.joaobatista
Link para o comentário
Compartilhar em outros sites

  • 0

só q meu problema

é que não estou conseguindo acessar o mysql do locaweb

eu tenho o vertrigo, só consigo acessar o mysql do meu PC entende?

como eu tinha te dito, eu tava fazendo tudo pelo mysql, só que não consegui executar os comandos

brother,

saquei....não tava conseguindo executar a trigger por causas do procedimentos da locaweb

da uma olhada no link ai

http://ajuda.locaweb.com.br/pt-br/Trigger

tem como me ajudar?

sou meio ruim neese lance de trigger

vlw

Link para o comentário
Compartilhar em outros sites

  • 0
só q meu problema

é que não estou conseguindo acessar o mysql do locaweb

eu tenho o vertrigo, só consigo acessar o mysql do meu PC entende?

como eu tinha te dito, eu tava fazendo tudo pelo mysql, só que não consegui executar os comandos

# Nas versões 5.1.x você terá permissões para fazer os processos abaixo;

# No MySQL 5.0.x, apesar de suportada, seu usuário não tem permissão para realizar o procedimento abaixo, neste caso terá que solicitar a criação das triggers através do Help Desk informando a query ou as queries para a criação dela(s), ou então, solicitar a instalação de uma nova base de dados e migrar os dados da base atual (SSH ou phpMyAdmin) para a base nova (SSH ou phpMyAdmin);

Bom, a não ser que sua base seja uma base antiga, você conseguirá criar o trigger normalmente, utilize as ferramentas GUI do MySQL, pelo MySQL Query Browser você conseguirá fazer isso normalmente.

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...