Питане

4 отговора 323 прегледа
#1

Питане

Здравейте!
Имам следната ситуация:
Използвам MySQL
Да кажем имам данни за клиент (които са в една таблица) и покупки (втора таблица)
За свързване между двете таблици използвам полето клиент_ИД което е първичен ключ на таблицата за клиентите и играе роля на външен ключ за таблицата с покупките

Проблема идва от това че искам това поле да е аутоинкремент.

Значи ако въвеждам, аз трябва да въведа данните в таблицата с клиентите, след това да извадя стойността на това поле и с тази стойност да въведа данните във таблицата с поръчките.

Не е ли много тромаво и има ли някакъв друг начин за въвеждане на данните в двете таблици

Отговор
в отговор на Novak #2

Re: Кое му е тромавото?

INSERT INTO client ...

INSERT INTO purchase (client_ID, ....) VALUES(LAST_INSERT_ID(), ....

salle.online.bg/sig
Отговор
в отговор на salle #3

Re: Кое му е тромавото?

това е добре

INSERT INTO purchase (client_ID, ....) VALUES(LAST_INSERT_ID(), ....

ами ако точно между двете заявки някой друг клиент се е регистрирал последното инсъртнато ид ще е неговото (то това е доста теоретично, но все пак)

Отговор
в отговор на novak #4

Re: Кое му е тромавото?

Няма опасност, LAST_INSERT_ID() е независимо от другите връзки към базата от данни. Това означава, че ако някой друг прави същото, функцията ще му върне резултата за неговата си връзка.

Everything louder than everything else...
Отговор
в отговор на Dakota #5

Re: Кое му е тромавото?

Благодаря ви

Това ще ми свърши работа

Отговор