Jump to content


Photo

Problemas Com Auto-increment


  • Faça o login para participar
12 replies to this topic

#1 insidegui

insidegui

    Turista

  • Usuários
  • 27 posts
  • Sexo:Masculino
  • Localidade:São Sebastião do Caí - RS
  • Interesses:Programação, Design de Interação/Interfaces

Posted 20/07/2006, 16:15

Seguinte, eu tenhu uma tabela que armazena dados, como exemplo, id, nome e email. O campo id é auto-increment. Digamos q eu adicione 4 nomes na tabela, o ultimo nome vai ficar com o id 4. Daeh digamos q eu exclua o campo q tem o id 3. A ordem dos ids da tabela ficara assim: 1, 2, 4 . Minha pergunta: Tem algum comando que reorganize esses ids, e dexe-os assim: 1,2,3?
Se naum fui claro me digam q eu tento explicar melhor.

Obrigado pela ajuda :D
CIO: www.precisodesite.com.br
Blogueiro: www.screencaster.com.br
Mac User =]

#2 Microbyte

Microbyte

    12 Horas

  • Usuários
  • 204 posts
  • Sexo:Não informado

Posted 20/07/2006, 16:18

Não pelo MySQL! É um auto increment... :)

Mas se fizer um código PHP, é capaz de conseguir... Mas não sei como fazê-lo.

Edição feita por: Microbyte, 20/07/2006, 16:19.


#3 insidegui

insidegui

    Turista

  • Usuários
  • 27 posts
  • Sexo:Masculino
  • Localidade:São Sebastião do Caí - RS
  • Interesses:Programação, Design de Interação/Interfaces

Posted 20/07/2006, 16:44

beleza, mas alguem aeh tem uma luz?
CIO: www.precisodesite.com.br
Blogueiro: www.screencaster.com.br
Mac User =]

#4 Dudu

Dudu

    Viva la vida

  • Usuários
  • 1437 posts
  • Sexo:Masculino
  • Localidade:Uberlândia - MG
  • Interesses:PHP

Posted 20/07/2006, 16:57

Ae amigo, se o id é auto-increment, a idéia é à cada registro, ele adicionar +1.
Que seu saiba, não existe um comando que reorganize os IDs.
Com isso, vocêr teria que ir no próprio banco de dados e reorganizar

Até mais ^_^

Edição feita por: _Dudu_1533, 20/07/2006, 16:58.

Fórum WMO - Equipe de Desenvolvimento / Banco de Dados - Moderador


Twitter: HostCheap


#5 goiaba2000

goiaba2000

    Tô com sono!

  • Usuários
  • 1118 posts
  • Sexo:Não informado
  • Localidade:Sobradinho-DF

Posted 20/07/2006, 18:02

na hora de fazer
DELETE FROM tabela WHERE campo_auto_increment = '$sei_la'

voce coloca logo apos:
UPDATE tabela SET campo_auto_increment = campo_auto_increment - 1 WHERE campo_auto_increment > '$sei_la'

so que na hora de incluir vc faz:
INSERT INTO tabela (campo_auto_increment, campo2...) VALUES ((SELECT MAX(campo_auto_increment) FROM tabela),'',...)


dai vc retira o auto increment do campo.



Isso já deu muitp problema aqui comigo tambem... agora a regra é clara pra todo mundo:
AUTO INCREMENT SÒ NO ORACLE E MS SQL
PHP + UML + OO + Flash + MySQL = IMBATIVEL

http://www.guilardi.com.br
- portifólio
http://www.deusehmais.com.br
- projeto atual

#6 Balala

Balala

    What you want for yourself?

  • Ex-Admins
  • 3357 posts
  • Sexo:Não informado
  • Localidade:Jaraguá do Sul - SC
  • Interesses:http://forum.wmonline.com.br/index.php?showtopic=5792

Posted 20/07/2006, 19:23

Não há razões para reorganizar um auto_increment... Por que isso deve ser feito? Para que finalidade?

Se houver heranças dessa tabela para outras? Vai alterar sempre a Foreign Key? De todas as child? ...
Balala - Admin Geral Webfórum - Retired
Twitter
Stop Spreading Lies!
Posted Image

#7 insidegui

insidegui

    Turista

  • Usuários
  • 27 posts
  • Sexo:Masculino
  • Localidade:São Sebastião do Caí - RS
  • Interesses:Programação, Design de Interação/Interfaces

Posted 21/07/2006, 01:27

assim, eh um sistema de logos, que mostra os logos na ordem que foram adicionados, vc acessa agora, ele mostra um, da um f5, ele mostra o proximo, e esse calculo eh pelo id da tabela, e se o id ta errado, o sistema naum funciona! alguem tem alguma ideia?
CIO: www.precisodesite.com.br
Blogueiro: www.screencaster.com.br
Mac User =]

#8 Dudu

Dudu

    Viva la vida

  • Usuários
  • 1437 posts
  • Sexo:Masculino
  • Localidade:Uberlândia - MG
  • Interesses:PHP

Posted 21/07/2006, 01:29

Eu acho que não tem necessidade de atualizar um AUTO-INCREMENT, para que ele esteja em ordem, que diferença vai fazer?

Só lhe dará mais trabalho.

Até mais ^_^

Fórum WMO - Equipe de Desenvolvimento / Banco de Dados - Moderador


Twitter: HostCheap


#9 Goku Jr

Goku Jr

    Nilson

  • Usuários
  • 3757 posts
  • Sexo:Masculino

Posted 21/07/2006, 07:29

Você deve estar usando a função RAND()!

Rand(min,max); para exibir os banners né?

que tal usar o RAND na própria QUERY do MySQL ?

SELECT RAND(id) FROM tabela LIMIT 1
^^' - será que está falando algo ai em cima?
faz mol cara que não uso o RAND() no SQL :P

o ID usado com o auto_increment, somente irá dar número de IDENTIFICAÇÃO para cada registro, para que você possa facilmente manipular o seus dados, pra outras tabelas ou até mesmo pra exibir!
PS: se estiver algo errado no que disse, PELO AMOR DE DEUS, me corrijam! Tks.

T+
-----------------------------------------------------------------------
PALMEIRAS - Primeiro campeão do mundo em 1951

#10 insidegui

insidegui

    Turista

  • Usuários
  • 27 posts
  • Sexo:Masculino
  • Localidade:São Sebastião do Caí - RS
  • Interesses:Programação, Design de Interação/Interfaces

Posted 22/07/2006, 10:46

Você deve estar usando a função RAND()!

Rand(min,max); para exibir os banners né?

que tal usar o RAND na própria QUERY do MySQL ?

SELECT RAND(id) FROM tabela LIMIT 1
^^' - será que está falando algo ai em cima?
faz mol cara que não uso o RAND() no SQL :P

o ID usado com o auto_increment, somente irá dar número de IDENTIFICAÇÃO para cada registro, para que você possa facilmente manipular o seus dados, pra outras tabelas ou até mesmo pra exibir!
PS: se estiver algo errado no que disse, PELO AMOR DE DEUS, me corrijam! Tks.

T+


Valew kra, ótima idéia, vou falar com o cliente se o lanc pode ser sorteado, pq ele queria em ordem, mas tudo bem, acho q sua idéia ta boa! :P
CIO: www.precisodesite.com.br
Blogueiro: www.screencaster.com.br
Mac User =]

#11 Paulo Freitas

Paulo Freitas

    ××××××× LRU #456504 ××××××× ××××××× LRM #364686 ×××××××

  • Ex-Admins
  • 5612 posts
  • Sexo:Masculino
  • Localidade:Campinas - SP

Posted 22/07/2006, 17:07

Pra resetar um campo auto-incremento é só excluir ele e criá-lo novamente, he he. :P

Mas, como dito, não há necessidade em se fazer isso. Em alguns casos, só vai lhe trazer dor de cabeça. :D

[]’s :D Até mais

#12 Fábio Luciano

Fábio Luciano

    Ativo

  • Usuários
  • 309 posts
  • Sexo:Masculino
  • Localidade:Santa Maria / DF
  • Interesses:Ah eu gosto de tudo :D

Posted 22/07/2006, 18:49

Uma vez, acho que foi o Balala que disse sobre uma forma interessante de se preservar os Id's... Ao inves de deletar a linha... Criasse um novo campo onde mostra se estava ativo ou não...
Achei a ideia interessante, e hoje aplico aos meus sistemas.

#13 insidegui

insidegui

    Turista

  • Usuários
  • 27 posts
  • Sexo:Masculino
  • Localidade:São Sebastião do Caí - RS
  • Interesses:Programação, Design de Interação/Interfaces

Posted 23/07/2006, 00:55

Uma vez, acho que foi o Balala que disse sobre uma forma interessante de se preservar os Id's... Ao inves de deletar a linha... Criasse um novo campo onde mostra se estava ativo ou não...
Achei a ideia interessante, e hoje aplico aos meus sistemas.


é uma coisa interessante, mas pode pesar no sistema...
CIO: www.precisodesite.com.br
Blogueiro: www.screencaster.com.br
Mac User =]




0 user(s) are reading this topic

0 membro(s), 0 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq