ALTERANDO CHAVE PRIMÁRIA DO MYSQL
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
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
Curtidas 3
Mais Respostas
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]
[url]http://fazer-site.net/auto-increment-mysql/[/url]
GOSTEI 0
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
é 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
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
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
21/07/2015
Funcionou e deixou de funcionar? Deu certo a questão da chave?
GOSTEI 0
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
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
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
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
21/07/2015
Boa tarde !
Alan, para as três , perguntas... pois os comandos não tiveram exito no banco ...
att
Virtuabr
Alan, para as três , perguntas... pois os comandos não tiveram exito no banco ...
att
Virtuabr
GOSTEI 0
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
att
Virtuabr
GOSTEI 0
Alan Mario
21/07/2015
Desculpa!
GOSTEI 0
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.
Melhor ter a informação controlada, e você consegue fazer do jeito que deseja.
GOSTEI 0
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
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
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 ?
Randrade, este link se refere ao Firebird .... também preciso desta informação ....
Para o Mysql você tem algo,para ensinar ?
GOSTEI 0
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:
Após o insert e o select abaixo,
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:
Para testar, vamos dar um truncate na tabela e o insert novamente, desta forma:
E teremos o seguinte resultado:
[img]http://arquivo.devmedia.com.br/forum/imagem/397347-20150730-135530.png[/img]
Olha um exemplo funcional aqui.
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