Robis Posted February 20, 2005 Report Share Posted February 20, 2005 Sveiki! Pienjemsim man MySQL tabula ir divi lauki: `id` un `id_num` Respektivi `id` ir pirmarais autoincreament key! Bet es velos lai pie jaunu ierakstu inserteshanas, `id_num` pieshkjiras gan jaunaa `id` vertiba + vel pieliek kadu stringu, piemeram '_bz'! To ir iespejams dabut gatavu? Link to post Share on other sites
tamster Posted February 20, 2005 Report Share Posted February 20, 2005 Var iegūt pēdējā pievienotā ieraksta Id vērtību ar mysql_insert_id, taču Tev laikam tāds variants neder, jo vajag vienā querijā. Ja der ar diviem, tad pirmajā to lauciņu atstāj tukšu, un otrajā ar update nomaini vērtību ar mysql_insert_id iegūto. Varbūt arī ir kāda SQL f-cija, ātri pārlaižot acis pār manuāli nepamanīju... Link to post Share on other sites
bubu Posted February 20, 2005 Report Share Posted February 20, 2005 Gaidi versiju, kur būs pieejami trigeri. Šitādas lietas darās caur tiem :) Link to post Share on other sites
Robis Posted February 20, 2005 Author Report Share Posted February 20, 2005 Nu atradu funkciju LAST_INSERT_ID() - ta nodereja, bet pilniba problemu neizdevas atrisinat, jo nezinu, ka var: UPDATE `table` SET `kautkas`='shis_kas_te jau ir' + kaut kas jauns Respektivi taja lauka nevis nomainit ar jauno, bet pielikt klat jaunu! Ir tada iespeja? Link to post Share on other sites
bubu Posted February 20, 2005 Report Share Posted February 20, 2005 last_insert_id() atgriež tik pagājušās darbības insert'otā ieraksta id, ja. un par to konkatenēšanu - protams ka tāda iespēja ir! pats tak korektu update teikumu uzrakstīji. Link to post Share on other sites
hmnc Posted February 21, 2005 Report Share Posted February 21, 2005 last_insert_id() atgriež tik pagājušās darbības insert'otā ieraksta id, ja.un par to konkatenēšanu - protams ka tāda iespēja ir! pats tak korektu update teikumu uzrakstīji. 14001[/snapback] un kā ir ar last_insert_id pie lielām slodzēm? resp - ja nospiež divi cilvēki vienlaicīgi podziņas un sanāk, ka pieprasījumi izpildās pamīšus? varētu būt visnotaļ interesanti :D Link to post Share on other sites
PheliX Posted February 21, 2005 Report Share Posted February 21, 2005 last_insert_id ir katrai konekcijai savs. ja neizmanto persistent connections tad katram skriptam buus sava konekcija un ja arii kaads cits skripts pa vidu paspees kautko iebaazt - id no taa nemainiisies (katram buus savs last_insert_id). Link to post Share on other sites
Venom Posted February 21, 2005 Report Share Posted February 21, 2005 vai nu insert .... update table set id_num=CONCAT(id,'_bz') WHERE id=LAST_INSERT_ID vai nu SELEXT MAX(id) as maxid ... LOCK TABLE $max=$result['maxid']+1 INSERT id=$maxid,id_num=$maxid.'_bz' UNLOCK Link to post Share on other sites
Roze Posted February 21, 2005 Report Share Posted February 21, 2005 Gaidi versiju, kur būs pieejami trigeri. Šitādas lietas darās caur tiem :) 13998[/snapback] Vispār jau tāda versija ir iznākusi un var lietot ON DUPLICATE KEY http://dev.mysql.com/doc/mysql/en/insert.html Link to post Share on other sites
Recommended Posts