tabele mysql

0

Mam następujący problem :

tabela dane: [nrID] [nazwa] [... ] ;

Przed wstawieniem nowych danych do tabeli chciałbym znać numer [nrID] pod który zostanie wstawiona
nowa zawartość. Można to zrobić dodając 1 do wartości zwróconej przez zapytania : select Max(nrID) from dane; było by ok ale problem pojawi się gdy usunę całą aktualną zwartość tabli( np 13 wierszy ) i spróbuję wstawić nowe dane. Wtedy powyższe zapytanie zwróci wartość NULL a ja potrzebuję w tym momencie wartości 13( bo mysql wstawi nową wartość pod nrID 14 ).

Jak sprawdzić pod jaki nrID( klucz główny ) mysql wstawi moje dane ??

Proszę o pomoc

0

Ustaw autonumeracje i sprawdzaj po wstawieniu danych przez LAST_INSERT_ID().

0

LAST_INSERT_ID nie daje pewnosci (w opisanym w poscie przypadku)
Np. kasujemy wszystko ostatnie id bylo np 13. Zamykamy polaczenie i otwieramy ponownie
LAST_INSERT_ID zwroci 0. Wiecej pewnosci daje wyluskanie (o ile chodzi o MySQL) za pomoca zapytania SHOW TABLE STATUS

0

Pytanie po co zamykac i otwierac nowe polaczenie w miedzyczasie... W ogole proba sterowania numerami id jest zazwyczaj chybiona. Maja byc unikalne, zeby byc kluczami glownymi i tyle sie od nich wymaga. Ni mniej ni wiecej. LAST_INSERT_ID dziala przy wstawianiu danym do kilku tabel, gdzie do kolejnej tabeli trzeba wstawic klucz obcy z poprzedniego wstawienia do innej tabeli.

Pytanie do autora: jaka akcje chcesz wykonac kompleksowo, ze znajomosc id jest konieczna?

PS. Nie ten dzial.

1 użytkowników online, w tym zalogowanych: 0, gości: 1