[MySQL] Zwracanie indeksu dodawanego wiersza

0

Witajcie, mam taki problem

Stworzyłem formularz z kilkoma prostymi danymi, które dodają się do bazy. Jednak aby wygenerować specjalny link po wypełnieniu formularza, potrzebuję zdobyć pozycję, na której dodał się dany wiersz. Wiem, że mogę to rozwiązać w taki sposób, że najpierw dodać dane (imie, nazwisko, email etc.) a potem zaraz wyszukać np po e-mailu i zwrócić pole id (auticrement), jednak chciałem zapytać, czy aby na pewno nie ma prostszego sposóby, które nie generowałby dodatkowego zapytania ? Innymi słowy, czy używając funkcji INSERT INTO jest możliwość aby ta zwróciła index (pole id) ?

Pozdrawiam

0

Nie. Tak czy siak musisz mieć drugie zapytanie. (można by tu kombinować z triggerem ale to też będzie dodatkowe zapytanie).

0

Możesz użyć : SELECT LAST_INSERT_ID()
W MySQL chyba nie ma RETURNING jak np w postgresie czy firebirdzie.

0

albo napisać stored proc, która wstawi dane i zwróci id

0

Dzięki za odpowiedzi, zrobiłem to na 2 zapytania. Mam jeszcze jedno pytanie, czy wraz z dodaniem rekordu są zapisywane w nim dane takie jak data dodania / ostatniej modyfikacji rekordu ? Czy jeśli chce miec taki informacje to musze dodac kolejne pole i dopiero wtedy bede wiedzial kiedy rekord powstal ?

0

trzeba sobie dodać pole i napisać trigera, który będzie ja aktualizował

0
Misiekd napisał(a)

trzeba sobie dodać pole i napisać trigera, który będzie ja aktualizował

W mysql nie trzeba:

http://dev.mysql.com/doc/refman/5.0/en/timestamp.html

Wystarczy na przykład zdefiniować pole następująco:

nazwa_pola TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP

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