PDA

Pogčedajte punu verziju : MySQL - istovremeni insert u tri povezane tabele koje imaju autoincrement


Igor Manjenčić
14. 12. 2010., 00:20
Imam situaciju u kojoj imam 3 tabele i svaka ima autoincrement ID s tim što svaka ima i polje koje se odnosi na ID nadređene tabele. Poterbno je na istoj stranici da ubacim u prvu tabelu, ubacim u drugu pritom upisem i ID iz prve i ubacim u trecu i pritom upisem ID iz prve i druge. Na koji način je najbolje to odraditi? Da li postoji neki način da prilikom inserta dobijem autoincrementirani ID? Da li zaključavati tabele i ne dozvoliti da uleti neki novi red?

dinke
14. 12. 2010., 00:32
http://php.net/manual/en/function.mysql-insert-id.php

misk0
14. 12. 2010., 00:33
Ako sam dobro skontao imas 3 inserta i od toga 2 zavise od prethodnih ID-ijeva?
Nisi napisao u kom jeziku radis, u PHP imas funkciju mysql_insert_id koja
Retrieves the ID generated for an AUTO_INCREMENT column by the previous query (usually INSERT).

i onda taj kljuc mozes koristiti za ostala 2 inserta.

I ne treba da te brine da li ce neko u medjuvremenu da upise novi red - ova funkcija vraca ID za tvoj zadnji insert koji zavisi od trenutne sesije.

Igor Manjenčić
14. 12. 2010., 00:39
Upravo to. Hvala vam. Ja sam zaključavao tabele pa sam izvršavao novi upit da izvučem poslednji ID pa sam otkljucao a onda kada se javila greška prilikom unosa i kada je tabela ostala zaključana češao sam se :)

jablan
14. 12. 2010., 08:35
Ne bi bilo loše da to wrapuješ u transakciju.