ALTERANDO CHAVE PRIMÁRIA DO MYSQL

Firebird

21/07/2015

Meu banco cria as chaves primárias assim 1 , 2 , 3 , 4 , 5 , 6 ...........e assim por diante .
como posso fazer uma alteração para que ele gere as chaves primarias assim 102 , 202 , 302 , 402 , 502 , 602 ...... e assim por diante ....

Att
Virtuabr
Virtuabr

Virtuabr

Curtidas 3

Mais Respostas

Alan Mario

Alan Mario

21/07/2015

Se a tabela estiver populada, acho melhor não fazer. De qualquer forma tem uma dica aqui:

[url]http://fazer-site.net/auto-increment-mysql/[/url]
GOSTEI 0
Virtuabr

Virtuabr

21/07/2015

Boa noite ,
é que um é para o mysql e o outro para firebird ...

a imagem do site ref a tela do php admin, não esta abrindo há outra imagem , para eu ver

att
virtuabr
GOSTEI 1
Virtuabr

Virtuabr

21/07/2015

Boa noite!
A infomação com o link a cima não teve exite, o comando é até executado, mas o antigo valor volta ;;;

att
virtuabr
GOSTEI 1
Alan Mario

Alan Mario

21/07/2015

Funcionou e deixou de funcionar? Deu certo a questão da chave?
GOSTEI 0
Virtuabr

Virtuabr

21/07/2015

Não ...
eu executo o comando,mas os próximos auto incremento , continua 1,2,3,4,5,6, ,as eu preciso que ele gere os proximo cód sempre com o numero 01 atrás do cód 101, 201, 301, 401, 501, 601, 701 ... .

att
virtuabr
GOSTEI 0
Karls Silva

Karls Silva

21/07/2015

Mais facil você criar um campo na tabela, usa-lo como chave primaria e cada vez que for dar um insert na tabela, ele incrementar nesse campo novo esse valor formatado como você quer.
GOSTEI 0
Alan Mario

Alan Mario

21/07/2015

Desculpa, fiz pratica 3 perguntas, e você respondeu não, pra qual pergunta foi a sua resposta "não".?
GOSTEI 0
Virtuabr

Virtuabr

21/07/2015

Boa tarde !
Alan, para as três , perguntas... pois os comandos não tiveram exito no banco ...

att
Virtuabr
GOSTEI 0
Virtuabr

Virtuabr

21/07/2015

Karls, essa seria a forma mais fácil ? Assim o banco terá de ficar com mais uma coluna de cód ?

att
Virtuabr
GOSTEI 0
Alan Mario

Alan Mario

21/07/2015

Desculpa!
GOSTEI 0
Karls Silva

Karls Silva

21/07/2015

Isso, ficaria com esse campo de codigo, pois teria como você controla-lo da maneira que deseja, ao invés de quebrar a cabeça tentando fazer esse increment automatico do proprio banco de dados.
Melhor ter a informação controlada, e você consegue fazer do jeito que deseja.
GOSTEI 0
Randrade

Randrade

21/07/2015

Karls, essa seria a forma mais fácil ? Assim o banco terá de ficar com mais uma coluna de cód ?

att
Virtuabr


Estou sem tempo para postar o código específico agora, mas este tópico pode sanar suas dúvidas.

Basicamente, você irá trabalhar com Generator e Trigger, criando uma Sequence para seus dados.
GOSTEI 0
Virtuabr

Virtuabr

21/07/2015

Boa tarde

Randrade, este link se refere ao Firebird .... também preciso desta informação ....

Para o Mysql você tem algo,para ensinar ?
GOSTEI 0
Randrade

Randrade

21/07/2015

A tag de sua pergunta esta como firebird, por isso postei.

Em Mysql é mais fácil ainda, basta criar uma trigger para isso.

Suponhamos que você possua a seguinte tabela:

CREATE TABLE animals (
     id MEDIUMINT NOT NULL AUTO_INCREMENT,

     name CHAR(30) NOT NULL,

     PRIMARY KEY (id)

) ENGINE=MyISAM;


Após o insert e o select abaixo,
INSERT INTO animals (name) VALUES

    ('dog'),('cat'),('penguin'),

    ('lax'),('whale'),('ostrich');



SELECT * FROM animals;


Nós teremos o seguinte resultado:
[img]http://arquivo.devmedia.com.br/forum/imagem/397347-20150730-135215.png[/img]

Para resolver o seu problema, basta criar um trigger para isso, desta forma:
CREATE TRIGGER increment_insert BEFORE INSERT ON animals
  FOR EACH ROW 
    SET NEW.id = (SELECT MAX(id) + 2 FROM animals);


Para testar, vamos dar um truncate na tabela e o insert novamente, desta forma:
TRUNCATE TABLE animals;
INSERT INTO animals (name) VALUES

    ('dog'),('cat'),('penguin'),

    ('lax'),('whale'),('ostrich');


SELECT * FROM animals;


E teremos o seguinte resultado:
[img]http://arquivo.devmedia.com.br/forum/imagem/397347-20150730-135530.png[/img]

Olha um exemplo funcional aqui.
GOSTEI 0
POSTAR