Fórum ALTERANDO CHAVE PRIMÁRIA DO MYSQL #526466
21/07/2015
0
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
Curtir tópico
+ 3Posts
21/07/2015
Alan Mario
[url]http://fazer-site.net/auto-increment-mysql/[/url]
Gostei + 0
21/07/2015
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
21/07/2015
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
22/07/2015
Alan Mario
Gostei + 0
22/07/2015
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
23/07/2015
Karls Silva
Gostei + 0
23/07/2015
Alan Mario
Gostei + 0
29/07/2015
Virtuabr
Alan, para as três , perguntas... pois os comandos não tiveram exito no banco ...
att
Virtuabr
Gostei + 0
29/07/2015
Virtuabr
att
Virtuabr
Gostei + 0
29/07/2015
Alan Mario
Gostei + 0
30/07/2015
Karls Silva
Melhor ter a informação controlada, e você consegue fazer do jeito que deseja.
Gostei + 0
30/07/2015
Randrade
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
30/07/2015
Virtuabr
Randrade, este link se refere ao Firebird .... também preciso desta informação ....
Para o Mysql você tem algo,para ensinar ?
Gostei + 0
30/07/2015
Randrade
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
Clique aqui para fazer login e interagir na Comunidade :)