Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Nowe ID dla rekordu
permanent
post 9.03.2009, 23:29:57
Post #1





Grupa: Zarejestrowani
Postów: 29
Pomógł: 0
Dołączył: 14.02.2009

Ostrzeżenie: (0%)
-----


W bazie mam istniejący rekord. Chciałbym mu nadać nową wartość ID. Moje pole ID to primary_key i auto_increment. Chciałbym mu nadać nowe
ID według auto_increment bez usuwania go. Czy to w ogóle możliwe? 
Go to the top of the page
+Quote Post
piaseq
post 9.03.2009, 23:36:59
Post #2





Grupa: Zarejestrowani
Postów: 161
Pomógł: 25
Dołączył: 6.09.2008
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Czy napisanie posta na forum i czekanie aż ktoś odpowie na prawdę zajmuje mniej czasu niż napisanie jednego zapytania i sprawdzenie? Odpowiedź na Twoje pytanie brzmi tak, da się to zrobić (zakładam, że korzystasz z MySql)
Go to the top of the page
+Quote Post
permanent
post 9.03.2009, 23:41:20
Post #3





Grupa: Zarejestrowani
Postów: 29
Pomógł: 0
Dołączył: 14.02.2009

Ostrzeżenie: (0%)
-----


Próbowałem, zrobić

UPDATE DANE SET ID='' - nie pomogło

a także:

UPDATE DANE SET ID=NULL - też nie pomogło
Go to the top of the page
+Quote Post
piaseq
post 9.03.2009, 23:43:12
Post #4





Grupa: Zarejestrowani
Postów: 161
Pomógł: 25
Dołączył: 6.09.2008
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Od początku. Jaką wartość ma ID aktualnie, na jaką chcesz ją zmienić i jakim dokładnie zapytaniem próbujesz to zrobić.
Go to the top of the page
+Quote Post
erix
post 9.03.2009, 23:55:42
Post #5





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Jeśli chcesz dać "świeże" ID, to chyba tak powinno pójść:
  1. UPDATE tabela SET ID=(SELECT MAX(ID) FROM tabela)<span style='color:orange'>+1 WHERE ...


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
Mephistofeles
post 10.03.2009, 16:56:51
Post #6





Grupa: Zarejestrowani
Postów: 1 182
Pomógł: 115
Dołączył: 4.03.2009
Skąd: Myszków

Ostrzeżenie: (0%)
-----


A może REPLACE? Powinno usunąć stary rekord i dodać nowy, taki sam, z nowym ID.
Go to the top of the page
+Quote Post
erix
post 10.03.2009, 17:03:36
Post #7





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




A po co zamieniać cały rekord, skoro można tylko jedno pole?


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
Mephistofeles
post 10.03.2009, 17:53:30
Post #8





Grupa: Zarejestrowani
Postów: 1 182
Pomógł: 115
Dołączył: 4.03.2009
Skąd: Myszków

Ostrzeżenie: (0%)
-----


Bo MAX zwraca wartość maksymalną, a nie następne ID? Zależy czy usuwasz ostatnie rekordy winksmiley.jpg.
Go to the top of the page
+Quote Post
erix
post 10.03.2009, 18:25:54
Post #9





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




A obliczanie następnego ID przebiega właśnie po MAX(primaryKey)+1. winksmiley.jpg

http://dev.mysql.com/doc/refman/5.0/en/exa...-increment.html


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
Mephistofeles
post 10.03.2009, 20:30:59
Post #10





Grupa: Zarejestrowani
Postów: 1 182
Pomógł: 115
Dołączył: 4.03.2009
Skąd: Myszków

Ostrzeżenie: (0%)
-----


A nie pomyliłeś przypadkiem tego
Cytat
For MyISAM and BDB tables you can specify AUTO_INCREMENT on a secondary column in a multiple-column index.
?
Bo z tego co rozumiem, to można ustawić auto increment na drugim kluczu, i on dopiero jest tak liczony. Możesz sobie sprawdzić, nawet jak usuniesz ostatni rekord to auto increment zostaje ten sam winksmiley.jpg. Sprawdzałem przed chwilą smile.gif.
Go to the top of the page
+Quote Post
erix
post 10.03.2009, 21:15:37
Post #11





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Między index a primary key jest pewna różnica.

Zresztą, poeksperymentuj na jakiejś tabeli, to zobaczysz, że każdy nowy ID jest tak liczony. winksmiley.jpg Był kiedyś temat odnośnie identyfikatorów.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
Mephistofeles
post 10.03.2009, 22:41:04
Post #12





Grupa: Zarejestrowani
Postów: 1 182
Pomógł: 115
Dołączył: 4.03.2009
Skąd: Myszków

Ostrzeżenie: (0%)
-----


To, że jest różnica to akurat wiem smile.gif.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 20.06.2025 - 20:12