[mysql] =?ISO-8859-2?Q?unikalno=B6=E6_pola_Id?=
Gerwazy - 18-06-2006 00:44
[mysql] =?ISO-8859-2?Q?unikalno=B6=E6_pola_Id?=
Mam w bazie takie sytuacje, gdzie bywa, że numery pól Id (autoincrement) powtarzają się. To znaczy, miałem np. użytkownika o Id 40. Później bawiłem się (co prawda na żywca) bazą i usunąłem kilku ostatnich. Aplikacja natomiast, po wypełnieniu formularza wrzuciła mi do bazy użytkownika nadając mu nr. 39. Jak zabezpieczyć się, aby baza już nigdy nie używała ponownie tych samych numerów?
Xorock - 18-06-2006 00:44
Gerwazy napisał(a): > Mam w bazie takie sytuacje, gdzie bywa, że numery pól Id (autoincrement) > powtarzają się. To znaczy, miałem np. użytkownika o Id 40. Później > bawiłem się (co prawda na żywca) bazą i usunąłem kilku ostatnich. > Aplikacja natomiast, po wypełnieniu formularza wrzuciła mi do bazy > użytkownika nadając mu nr. 39. Jak zabezpieczyć się, aby baza już nigdy > nie używała ponownie tych samych numerów? unique index a tu powinien byc primary key
Gerwazy - 18-06-2006 00:44
Xorock napisał(a):
> unique index > a tu powinien byc primary key
no właśnie niby tak mam, sam już teraz nie wiem - może coś ręcznie namieszałem :(
kubik - 19-06-2006 01:58
=?iso-8859-2?q?Re:_unikalno=B6=E6_pola_Id?= Gerwazy napisał(a):
> no właśnie niby tak mam, sam już teraz nie wiem - może coś ręcznie > namieszałem :( Jeżeli faktycznie pole jest autoincrement, to wina leży po stronie aplikacji - jest najwyraźniej zwalona - być może zamiast pozostawiać wybór ID silnikowi bazy danych sama jawnie podaje to ID (pobierając wcześniej np. MAX(ID)).
pozdrawiam Adam Kubiczek
Przemyslaw Popielarski - 19-06-2006 01:58
Gerwazy wrote: > Mam w bazie takie sytuacje, gdzie bywa, że numery pól Id > (autoincrement) powtarzają się. To znaczy, miałem np. użytkownika o > Id 40. Później bawiłem się (co prawda na żywca) bazą i usunąłem kilku > ostatnich. Aplikacja natomiast, po wypełnieniu formularza wrzuciła mi > do bazy użytkownika nadając mu nr. 39. Jak zabezpieczyć się, aby baza > już nigdy nie używała ponownie tych samych numerów?
Innodb tak ma i po restarcie serwera utworzy Ci indeks max(kolumna)+1. Uzyj MyISAM i autoincrement na pojedynczej kolumnie jesli Ci to nie odpowiada.
-- ../ premax ../ premax@hot.pl ../ koniec i bomba, a kto czytal ten traba. w.g.
zanotowane.pldoc.pisz.plpdf.pisz.pleffulla.pev.pl
|
Gdzie MySQL 4.1, a gdzie 5.0?
[MS SQL] "set names" (mySQL) w MS SQL
oracle -> oracle lub oracle -> mysql replikacja - programy
[MySQL] Zwrot tego, co pasuje i nie pasuje :-/
[pgsql] Dostosowanie składni MySQL 5.0 -> PGSQL 8.1
[mysql] galeria zdjec - numerowanie zdjec
[MySQL] Zapytanie z pliku , wynik do pliku
[mysql] CONCAT agregujący, ale nie GROUP_CONCAT()
mysql data 0000-00-00 na koniec
[MySQL] Problem z zapisem danych w bazie danych
zanotowane.pldoc.pisz.plpdf.pisz.plwawa19wwa91.pev.pl
Cytat
Decede mihi sole - nie zasłaniaj mi słonca. Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści Hoc fac - tak czyń. A tergo - od tyłu; z tyłu. I czarne włosy posiwieją. Safona |
|