Auto Increment MYSQL

Como faço para incrementar o codigo das tabelas de 2 em 2 codigos ou mais?

Ex.: de um cod. 1 para 3 depois 5 ja de outra tabela de 2 para 4 depois 6 e assim por diante…

Fico no aguardo e agradeço aos que puderem me ajudar.

[quote=jeanton]Como faço para incrementar o codigo das tabelas de 2 em 2 codigos ou mais?

Ex.: de um cod. 1 para 3 depois 5 ja de outra tabela de 2 para 4 depois 6 e assim por diante…

Fico no aguardo e agradeço aos que puderem me ajudar.

[/quote]

Sinceramente gostaria de saber porque os números precisam ter essa progressão, dado que normalmente os ids das tabelas são apenas chaves artificiais e deveriam apenas ser usados para fazer os relacionamenos entre tabelas (aumento de desempenho).
Se mesmo assim vc precisa disso (ainda queria saber a razão), a anotação @GeneratedValue talvez possa ser configurada para atribuir esse comportamento. Dê uma pesquisa no Google.

[]´s

Preciso disso para um trabalho com replicação onde vou ter 2 bancos de dados. um MYSQL e um Firebird, onde cada um tera um sistema logado. o Firebird tem um em Delphi, o MYSQL um sistema web, e cada um trabalha independente. para não conflitar os ids, preciso q o web tenha uma sequencia e o local outro. pois nao posso mudar a regra do local, senao colocaria uma seq. de cadastro onde teria uma regra com um codigo fixo e tal sempre sendo add ao cod. como sempre add 1 no banco firebird, e sempre 2 no banco mysql, mas ele ja funciona assim sequencial. no firebird ja mudei via Trigger para incrementar de 2 em 2, mas no MYSQL não sei como fazer.

Mas preciso de algo que mude o incremento direto no MYSQL. Tem como?

Conseguiu entender a necessidade?

Valeu, consegui encontrar a solução.

DELIMITER |

CREATE DEFINER = ‘root’@‘localhost’ TRIGGER increment
BEFORE INSERT
ON grupo
FOR EACH ROW
BEGIN
set NEW.id = (select ifnull( max( id ) , 0 ) + 2 from GRUPO);
END|

DELIMITER ;

E ai cara…

Vi seu post, e estou querendo fazer a mesma coisa, mas na verdade o banco que eu tenho dominio é postgres, mas na minha aplicacao vou ter q mexer com um banco mysql que já existe, mas preciso alterar este comportamento do auto incremento.
Vou ter que criar uma trigger para cada tabela que desejo mudar a forma do auto incremento ?

valeu…

Eu achei isso no site do mysql

auto_increment_increment controls the interval between successive column values. For example:

mysql> SHOW VARIABLES LIKE ‘auto_inc%’;
±-------------------------±------+
| Variable_name | Value |
±-------------------------±------+
| auto_increment_increment | 1 |
| auto_increment_offset | 1 |
±-------------------------±------+
2 rows in set (0.00 sec)

mysql> CREATE TABLE autoinc1
-> (col INT NOT NULL AUTO_INCREMENT PRIMARY KEY);
Query OK, 0 rows affected (0.04 sec)

mysql> SET @@auto_increment_increment=10;
Query OK, 0 rows affected (0.00 sec)

mysql> SHOW VARIABLES LIKE ‘auto_inc%’;
±-------------------------±------+
| Variable_name | Value |
±-------------------------±------+
| auto_increment_increment | 10 |
| auto_increment_offset | 1 |
±-------------------------±------+
2 rows in set (0.01 sec)

mysql> INSERT INTO autoinc1 VALUES (NULL), (NULL), (NULL), (NULL);
Query OK, 4 rows affected (0.00 sec)
Records: 4 Duplicates: 0 Warnings: 0

mysql> SELECT col FROM autoinc1;
±----+
| col |
±----+
| 1 |
| 11 |
| 21 |
| 31 |
±----+
4 rows in set (0.00 sec)

tem mais detalhes no site.
http://dev.mysql.com/doc/refman/5.0/en/replication-options-master.html#sysvar_auto_increment_increment

Espero que ajude

Valeu cara, era isso mesmo que eu precisava…

Não foi nada
O esquema é compartilhar conhecimento

Entao cara, executei oq vc me passou, mas ele so funciona naquele momento, quando reinicio o mysql volta para increment = 1, qual arquivo de configuracao poderia setar isso como default ?

valeu…

Consegui resolver…

Coloquei auto_increment_increment = 3 no arquivo /etc/my.cnf em [mysqld]

t+