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

(Resolvido) auto_increment no formato (0001)


cwarez

Pergunta

boa tarde pessoal,

eu não sei se devo postar aqui ou em mysql, me desculpem ai, qualquer coisa move ai

mas ae

queria saber se tinha como a id auto_increment ser criada no formato

0001 , 0002 , 0010 , 0020 , 0100 ....

entendem?

vlw pessoal

Link para o comentário
Compartilhar em outros sites

18 respostass a esta questão

Posts Recomendados

  • 0
boa tarde pessoal,

eu não sei se devo postar aqui ou em mysql, me desculpem ai, qualquer coisa move ai

mas ae

queria saber se tinha como a id auto_increment ser criada no formato

0001 , 0002 , 0010 , 0020 , 0100 ....

entendem?

vlw pessoal

Hey amigão, é só definir sua coluna com zerofill:

create table teste(
	`id`	smallint(4) unsigned zerofill not null auto_increment,
	`nome`	varchar(10) default null,
	primary key(`id`)
) engine=MyISAM;
Inserindo alguns registros:
insert into teste(`id`,`nome`) values(null,"João"),(null,"Batista"),(null,"Neto" );
Conferindo:
mysql> select * from teste;
+------+---------+
| id   | nome    |
+------+---------+
| 0001 | João    |
| 0002 | Batista |
| 0003 | Neto    |
+------+---------+
3 rows in set (0.00 sec)

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

  • 0

td certo até agora, fui la

só q no caso, seria o numero do contrato que ia gerando 0001,0002..........

como já tem o campo ID com um auto_increment

não tem como eu criar mais um campo (numero_contrato) auto_increment

o que posso fazer pessoal? vlw

Link para o comentário
Compartilhar em outros sites

  • 0
td certo até agora, fui la

só q no caso, seria o numero do contrato que ia gerando 0001,0002..........

como já tem o campo ID com um auto_increment

não tem como eu criar mais um campo (numero_contrato) auto_increment

o que posso fazer pessoal? vlw

Sua tabela ficaria assim:

create table `teste`(
        `id` mediumint(8) unsigned not null auto_increment,
        `contrato` smallint(4) unsigned zerofill default null,
        `teste` varchar(20) not null,
        primary key(`id`),
        key `contrato`(`contrato`)
) engine=MyISAM;

create trigger
        contratos_autoincrement
before insert on teste
        for each row 
                set NEW.contrato=(select ifnull( max(contrato) , 0 ) + 1 from teste);
Testando:
mysql> insert into teste(`id`,`contrato`,`teste`) values(null,null,"primeiro"),(null,null,"segundo"),(null,null,"terceiro");
Query OK, 3 rows affected (0.00 sec)                                                                                        
Records: 3  Duplicates: 0  Warnings: 0 

mysql> select * from teste;
+----+----------+----------+
| id | contrato | teste    |
+----+----------+----------+
|  1 |     0001 | primeiro |
|  2 |     0002 | segundo  |
|  3 |     0003 | terceiro |
+----+----------+----------+
3 rows in set (0.00 sec)

Link para o comentário
Compartilhar em outros sites

  • 0

tranquilo, ta tudo certo!

vlw pessoal consegui

mas ai, preciso de só mais uma coisinha

já tenho uma tabela chamada

clica_lista

como adiciono este sql, para cair direto na tabela c_clicalista?

sem precisar apagar a tabela e criar tudo denovo

vlw

create table `teste`(
`id` mediumint(8) unsigned not null auto_increment,
`contrato` smallint(4) unsigned zerofill default null,
`teste` varchar(20) not null,
primary key(`id`),
key `contrato`(`contrato`)
) engine=MyISAM;

create trigger
contratos_autoincrement
before insert on teste
for each row 
set NEW.contrato=(select ifnull( max(contrato) , 0 ) + 1 from teste);

Link para o comentário
Compartilhar em outros sites

  • 0
um campo chamado CONTRATO logo após o CLICA_ID

Ok, modificando sua tabela:

alter table `c_clicalista`
	add column `contrato` smallint(4) unsigned zerofill default null after `clica_id`,
	add index `contratos`(`contrato`);
Criando o trigger:
create trigger contratos_autoincrement before insert on c_clicalista for each row
set NEW.contrato=(select ifnull( max(contrato) , 0 ) + 1 from c_clicalista);
Adicionando dois registros:
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' , '');
Preste atenção no null logo após o id 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 |                                                    
+----------+----------+--------+--------+-----+--------------+----------------+--------+---------------------------+------+------------+------------------------+-------------+-------------------------------------------------------+------+---------+-----------+                                                    
|       45 |     0001 | 87     |        |     |              | mauricio       | 123456 | Casa de Ração Ponto Final |      |            | maursantos@hotmail.com | 3228 3150   | Av. Alpheu Ribeiro, 1291 Carapina Grande - Serra - ES |      | Ativado |           |
|       44 |     0002 | 45     |        |     |              | Salão da Selma | 123456 | Salão da Selma            |      |            |                        | 8811 - 1176 | Av. Alpheu Ribeiro, 1110 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
'contrato' vai começar no proximo cadastro que fizer, certo?

então,

os cadastros passados estao como NULL

hehehehe

Antes:

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 |
+----------+----------+--------+--------+-----+--------------+----------------+--------+---------------------------+------+------------+------------------------+-------------+-------------------------------------------------------+------+---------+-----------+
|       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 |           |
|       44 |     NULL | 45     |        |     |              | Salão da Selma | 123456 | Salão da Selma            |      |            |                        | 8811 - 1176 | Av. Alpheu Ribeiro, 1110 Carapina Grande - Serra - ES |      | Ativado |           |
+----------+----------+--------+--------+-----+--------------+----------------+--------+---------------------------+------+------------+------------------------+-------------+-------------------------------------------------------+------+---------+-----------+
2 rows in set (0.00 sec)
Criamos um procedimento para fazer o trabalho:
delimiter $$
create procedure `atualiza_contratos`() begin set @i := 0;
	update c_clicalista set contrato=(select @i:=@i + 1);
end$$
delimiter;
Atualizando todo mundo:
mysql> call atualiza_contratos();
Query OK, 2 rows affected (0.00 sec)
Testando:
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 |
+----------+----------+--------+--------+-----+--------------+----------------+--------+---------------------------+------+------------+------------------------+-------------+-------------------------------------------------------+------+---------+-----------+
|       45 |     0001 | 87     |        |     |              | mauricio       | 123456 | Casa de Ração Ponto Final |      |            | maursantos@hotmail.com | 3228 3150   | Av. Alpheu Ribeiro, 1291 Carapina Grande - Serra - ES |      | Ativado |           |
|       44 |     0002 | 45     |        |     |              | Salão da Selma | 123456 | Salão da Selma            |      |            |                        | 8811 - 1176 | Av. Alpheu Ribeiro, 1110 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

eu sou meio leigo em mysql rsrs

tem como me explicar só como eu me conecto ao mysql do servidor atravez do prompt? pra te falar a verdade não sei nem aonde é o prompt

me falando isso, tópico estara resolvido

abraçosss

Link para o comentário
Compartilhar em outros sites

  • 0
eu sou meio leigo em mysql rsrs

tem como me explicar só como eu me conecto ao mysql do servidor atravez do prompt? pra te falar a verdade não sei nem aonde é o prompt

me falando isso, tópico estara resolvido

abraçosss

No windows clique em iniciar/executar escreva cmd. Você estará no prompt do DOS. Digite

mysql -u <seu usuário> -p

Você receberá a mensagem

Welcome to the MySQL monitor.  Commands end with; or \g.
Your MySQL connection id is 1
Server version: 5.0.37-community-nt MySQL Community Edition (GPL)

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql>

Você já está no prompt do mysql.

Para sair digite quit seguido da tecla enter.

Depois, digite exit para sair do prompt do DOS.

Nota; todos os comandos dentro do mysql devem ser finalizados com o ponto-e-virgula ";"

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.


  • Estatísticas dos Fóruns

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