Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Insert u vise tabela sa novim Id iz prve tabele

[es] :: MySQL :: Insert u vise tabela sa novim Id iz prve tabele

[ Pregleda: 3285 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

dj13
Beograd

Član broj: 64598
Poruke: 15
*.dynamic.sbb.co.yu.



Profil

icon Insert u vise tabela sa novim Id iz prve tabele25.10.2006. u 14:19 - pre 212 meseci
Kako bi moga da se uradi insert u 3 tabele,stim da se novi Id iz prve tabele, upisuje i u druge dve (kao strani kljuc radi povezivanja). A da pri tome ne bude brljanja ako dodje do velikog broja inserta u isto vreme?
poz
 
Odgovor na temu

misk0
.: Lugano :. _.: CH :.

SuperModerator
Član broj: 634
Poruke: 2824
*.adsl.ticino.com.

ICQ: 46802502


+49 Profil

icon Re: Insert u vise tabela sa novim Id iz prve tabele25.10.2006. u 19:16 - pre 212 meseci
Bez neke komplikacije.
Uradis prvi insert, pokupis taj ID sa selectom i onda formiras sledecu SQL komandu sa tim IDom kao jednim od parametara.

:: Nemoj se svadjati sa budalom, ljudi cesto nece primjetiti razliku ::
 
Odgovor na temu

dj13
Beograd

Član broj: 64598
Poruke: 15
*.dynamic.sbb.co.yu.



Profil

icon Re: Insert u vise tabela sa novim Id iz prve tabele26.10.2006. u 11:37 - pre 212 meseci
Citat:
misk0: Bez neke komplikacije.
Uradis prvi insert, pokupis taj ID sa selectom i onda formiras sledecu SQL komandu sa tim IDom kao jednim od parametara.

Moze nesto ovako:
INSERT INTO table1(id,col1,col2) VALUES (,var1,var2)
$zadnji_id=mysql_insert_id()
INSERT INTO table2(id,col1,col2) VALUES (,$zadnji_id,var2)
INSERT INTO table3(id,col1,col2) VALUES (,$zadnji_id,var2)?
 
Odgovor na temu

shketuljko
Vedran Martinovic
Institut za javno zdravlje Srbije „Dr
Milan Jovanović Batut”
Beograd

Član broj: 1370
Poruke: 43
212.200.118.*

Sajt: www.besplatnioglasi.rs


Profil

icon Re: Insert u vise tabela sa novim Id iz prve tabele01.11.2006. u 10:36 - pre 211 meseci
Citat:
dj13: Kako bi moga da se uradi insert u 3 tabele,stim da se novi Id iz prve tabele, upisuje i u druge dve (kao strani kljuc radi povezivanja). A da pri tome ne bude brljanja ako dodje do velikog broja inserta u isto vreme?
poz


Ako dodje do velikog broja inserta onda koristi transakcije!
To je veoma mocno sredstvo!
Znaci
START TRANSACTION;
INSERT INTO table1(id,col1,col2) VALUES (,var1,var2)
$zadnji_id=mysql_insert_id()
INSERT INTO table2(id,col1,col2) VALUES (,$zadnji_id,var2)
INSERT INTO table3(id,col1,col2) VALUES (,$zadnji_id,var2)?
COMMIT;


I ukoliko ti ne prodje cijela transakcija onda se odradi rollback i to je to!
Znaci osiguran si da ce proci upiti!

Vedran Martinovic
www.besplatnioglasi.rs
 
Odgovor na temu

slobytox
Slobodan Jovanovic
Srbija

Član broj: 41212
Poruke: 21
194.106.187.*



Profil

icon Re: Insert u vise tabela sa novim Id iz prve tabele07.11.2006. u 20:09 - pre 211 meseci
Transakcije se cine idealnim ali kakve probleme donose.
U uslovima kada je baza velika (>2GB) broj istovremenih konekcija recimo 20 i broj komandi 100 u sekundi u kojoj meri ce koriscenje transakcija usporiti rad mysql servera.

Dodatno kako mogu biti siguran da izmedju komandi:

INSERT INTO table1(id,col1,col2) VALUES (,var1,var2)

i

$zadnji_id=mysql_insert_id()

nece biti zavrsena insert komanda od nekog drugog usera pa umesto zeljenog ID-a da dobijem drugi ID

Interesuje me u kojoj meri transakcije usporavaju server kod velikih i opterecenih baza? Ima li neko ozbiljnije iskustvo u vezi sa tim?
Da li na opterecenje servera prilikom transakcije bitno utice velicina tabela koje su u igri i moze li neko da objasni sta se zapravo desava prilikom izvrsenja transakcije?

[Ovu poruku je menjao slobytox dana 07.11.2006. u 23:40 GMT+1]
-----------------
SJ
 
Odgovor na temu

dj13
Beograd

Član broj: 64598
Poruke: 15
*.dynamic.sbb.co.yu.



Profil

icon Re: Insert u vise tabela sa novim Id iz prve tabele13.11.2006. u 09:42 - pre 211 meseci
Citat:
slobytox:
Dodatno kako mogu biti siguran da izmedju komandi:

INSERT INTO table1(id,col1,col2) VALUES (,var1,var2)

i

$zadnji_id=mysql_insert_id()

nece biti zavrsena insert komanda od nekog drugog usera pa umesto zeljenog ID-a da dobijem drugi ID


To i mene interesuje.
Mada sam negde procitao da sa PHP mysql_insert_id() valjda ne moze doci do te gorespomenute zamene ID, dok np. ako se uzme MySQL komanda last_insert_id da je moguca zbrka.
To sam samo procitao i ne znam da li je tacno, ako neko moze da potvrdi sa sigurnoscu bilo bi lepo :).
poz
 
Odgovor na temu

Dejan Topalovic
Dejan Topalović
Senior Oracle DBA & Senior PL/SQL
Developer, Erste Sparinvest (Erste
Bank), Vienna, Austria
Vienna

Član broj: 635
Poruke: 1374
*.it-austria.net.

Sajt: www.baze-podataka.net


+2 Profil

icon Re: Insert u vise tabela sa novim Id iz prve tabele15.11.2006. u 16:33 - pre 211 meseci
Nadam se da ce vam ovo pomoci:
"The value of mysql_insert_id() is affected only by statements issued within the current client connection. It is not affected by statements issued by other clients."
i
"Also note that the value of the SQL LAST_INSERT_ID() function always contains the most recently generated AUTO_INCREMENT value, and is not reset between statements because the value of that function is maintained in the server."
Blog - baze podataka
---------------------
Oracle OCP DBA (9i & 10g)
Oracle Database: SQL Certified Expert
Oracle OCP Developer
Certified MySQL DBA
 
Odgovor na temu

[es] :: MySQL :: Insert u vise tabela sa novim Id iz prve tabele

[ Pregleda: 3285 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.