| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 31/10/2009 09:58:55
|
jeanton
Thread.start()
![[Avatar]](/images/avatar/528cf8c4a0b86390170c3317d07d7cba.jpg)
Membro desde: 17/10/2009 11:52:49
Mensagens: 33
Offline
|
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.
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 31/10/2009 10:38:28
|
davidbuzatto
Moderador
![[Avatar]](/images/avatar/7ba6d33c373fea56b7258003b16c68e5.jpg)
Membro desde: 07/08/2004 23:47:57
Mensagens: 4013
Localização: Vargem Grande do Sul - SP
Offline
|
jeanton wrote: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.
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
|
Seja educado. Agradeça quem te ajudou. Não custa nada.
Dúvidas de Java? Utilize o fórum! Não respondo via MP.
"Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Fowler)
"A vida é um escândalo, e no final dá sempre errado. O que humaniza o homem é o fracasso."
http://davidbuzatto.com.br | GitHub | uHunt | CV Lattes | Last.fm |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 31/10/2009 10:58:06
|
jeanton
Thread.start()
![[Avatar]](/images/avatar/528cf8c4a0b86390170c3317d07d7cba.jpg)
Membro desde: 17/10/2009 11:52:49
Mensagens: 33
Offline
|
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?
This message was edited 2 times. Last update was at 31/10/2009 11:16:17
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 31/10/2009 11:52:14
|
jeanton
Thread.start()
![[Avatar]](/images/avatar/528cf8c4a0b86390170c3317d07d7cba.jpg)
Membro desde: 17/10/2009 11:52:49
Mensagens: 33
Offline
|
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 ;
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 23/06/2010 18:05:23
|
vdb
JavaEvangelist
Membro desde: 28/09/2006 11:38:29
Mensagens: 330
Localização: Curitiba / PR
Offline
|
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..
|
SCJP 5
SCWCD 5 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 23/06/2010 18:39:06
|
mapleplayer
JavaBaby
![[Avatar]](/images/avatar/a13013785b931a4598ee49a5e590057b.jpg)
Membro desde: 16/06/2010 18:25:27
Mensagens: 86
Localização: Buri - SP
Offline
|
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
|
Por favor, pesquise primeiro antes de perguntar
OCPJP 6
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 23/06/2010 22:17:34
|
vdb
JavaEvangelist
Membro desde: 28/09/2006 11:38:29
Mensagens: 330
Localização: Curitiba / PR
Offline
|
Valeu cara,, era isso mesmo que eu precisava..
|
SCJP 5
SCWCD 5 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 24/06/2010 11:11:59
|
mapleplayer
JavaBaby
![[Avatar]](/images/avatar/a13013785b931a4598ee49a5e590057b.jpg)
Membro desde: 16/06/2010 18:25:27
Mensagens: 86
Localização: Buri - SP
Offline
|
Não foi nada
O esquema é compartilhar conhecimento
|
Por favor, pesquise primeiro antes de perguntar
OCPJP 6
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 24/06/2010 11:22:39
|
vdb
JavaEvangelist
Membro desde: 28/09/2006 11:38:29
Mensagens: 330
Localização: Curitiba / PR
Offline
|
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..
|
SCJP 5
SCWCD 5 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 24/06/2010 11:54:25
|
vdb
JavaEvangelist
Membro desde: 28/09/2006 11:38:29
Mensagens: 330
Localização: Curitiba / PR
Offline
|
Consegui resolver...
Coloquei auto_increment_increment = 3 no arquivo /etc/my.cnf em [mysqld]
t+
|
SCJP 5
SCWCD 5 |
|
|
 |
|
|