Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Nowe ID dla rekordu
Forum PHP.pl > Forum > PHP
permanent
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? 
piaseq
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)
permanent
Próbowałem, zrobić

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

a także:

UPDATE DANE SET ID=NULL - też nie pomogło
piaseq
Od początku. Jaką wartość ma ID aktualnie, na jaką chcesz ją zmienić i jakim dokładnie zapytaniem próbujesz to zrobić.
erix
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 ...
Mephistofeles
A może REPLACE? Powinno usunąć stary rekord i dodać nowy, taki sam, z nowym ID.
erix
A po co zamieniać cały rekord, skoro można tylko jedno pole?
Mephistofeles
Bo MAX zwraca wartość maksymalną, a nie następne ID? Zależy czy usuwasz ostatnie rekordy winksmiley.jpg.
erix
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
Mephistofeles
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.
erix
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.
Mephistofeles
To, że jest różnica to akurat wiem smile.gif.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.