2011-10-20 13 views
5

mam około 1000 wierszy i chcesz zwiększyć wszystkie numerem identyfikacyjnym wierszy o 1. myślałem coś takiego może działaćRegulacja kolumny MySQL ID +1

UPDATE table

SET id = id+1

Próbowałem w phpMyAdmin, ale mam to: Zduplikowany wpis "2" dla klucza "PODSTAWOWY"

To ma sens, ale jak mogę go obejść?

Odpowiedz

18

Czy to nie jest dużo łatwiej zamówić go do tyłu?

update table set id = id +1 order by id desc 

działa to dla mnie ...

+3

+1 chłodny, ja nie wiedziałem, że można użyć zamówienie na instrukcję aktualizacji – bumperbox

+0

nie wiedział, mógłbym zamówić do tyłu, to ma sens .. pozwól mi wypróbować – lee

+0

zestaw tabel aktualizacji id = id +1 to również działa bez względu na to czy dodasz zamówienie przez czy nie –

0

Wykonaj czynności:

  1. skrzynię tabeli temp
  2. skopiować wszystkie dane do tabeli temp z żądanym id
  3. usunięcia oryginalny stół
  4. Pod koniec zmiany nazwy tabeli temp do pierwotnej tabeli .

To wszystko.

0

użyć tyle duże liczby, które przyzwyczajenie tworzenia duplikatów

update table set id = id + 1000001; 
update table set id = id - 1000000; 

pamiętać ten wzrośnie klawisz automatycznego przyrostu jeśli używasz jednego