Pluton Mesaj tarihi: Ekim 30, 2011 Mesaj tarihi: Ekim 30, 2011 Şimdi ilk önce kullanmak istemediğim ama çalışan kod şu; $last_id = $db->query("INSERT INTO table (name) VALUES ('paticik')"); $db->query("UPDATE table SET sort='$last_id' WHERE id='$last_id'"); Bunun yerine INSERT yaparken direk inserti yaptıgı ID 'yi aldırmam mümkün müdür? Mümkünse nasıl mümkündür ?
Sypro Mesaj tarihi: Ekim 30, 2011 Mesaj tarihi: Ekim 30, 2011 WHERE'den sonraya diğer query'yi ekle. nested query gönder yani.
Ragnar Mesaj tarihi: Ekim 30, 2011 Mesaj tarihi: Ekim 30, 2011 ("INSERT INTO table (name) VALUES ('paticik') SELECT LAST_INSERT_ID=@@IDENTITY");
4Ever Mesaj tarihi: Ekim 30, 2011 Mesaj tarihi: Ekim 30, 2011 Hangi DB? PostGreSql'de RETURNING ID var, Mysql'de mysql_insert_id(); fonksiyonu var
riglous Mesaj tarihi: Ekim 30, 2011 Mesaj tarihi: Ekim 30, 2011 kontrolünü sen yap. select max(id) from table $new_id = query'den dönen max(id)+1 insert into table(id, name, sort) values ($new_id, 'paticik', $new_id)
di Mesaj tarihi: Ekim 30, 2011 Mesaj tarihi: Ekim 30, 2011 Hani cok zor ama iki sorgu arasinda baska bir user ya da ayni tabloyu isleyen baska bir process girerse araya patlar abi o.
di Mesaj tarihi: Ekim 30, 2011 Mesaj tarihi: Ekim 30, 2011 Bu arada max(id) ya da last insert id yerine "SELECT ... FROM table WHERE ( en son sorguda insert ettigin degerler) ORDER BY id DESC LIMIT 1" gibi bir sorgu yukarda bahsettigim durumlara karsin daha etkili olabiliyor.
geezus Mesaj tarihi: Ekim 30, 2011 Mesaj tarihi: Ekim 30, 2011 inserti yaparken id alamazsın, yaptıktan sonra last id diye alacaksın işte
di Mesaj tarihi: Ekim 30, 2011 Mesaj tarihi: Ekim 30, 2011 Insert yaparken almiyorsun zaten. Her ikisinde de ilk sorguyu calistirdiktan sonra yapiyorsun ne yapacaksan.
geezus Mesaj tarihi: Ekim 30, 2011 Mesaj tarihi: Ekim 30, 2011 Pluton said: Bunun yerine INSERT yaparken direk inserti yaptıgı ID 'yi aldırmam mümkün müdür? Mümkünse nasıl mümkündür ?
di Mesaj tarihi: Ekim 30, 2011 Mesaj tarihi: Ekim 30, 2011 Onu taa burda yazcaktin artiz. Ben cevapladiktan sonra yazarsan bana soyluyosun sanarim pek tabi. geezus said: SELECT LAST_INSERT_ID();
geezus Mesaj tarihi: Ekim 30, 2011 Mesaj tarihi: Ekim 30, 2011 senin mesajını görmedim bile, aynı anda post etmişiz
geezus Mesaj tarihi: Ekim 30, 2011 Mesaj tarihi: Ekim 30, 2011 senin dediğinin de sıkıntısı var bence çok yoğun çalışıyor ise database, aynı anda 2 insert gelirse ikincisini verir.
di Mesaj tarihi: Ekim 30, 2011 Mesaj tarihi: Ekim 30, 2011 Insert ettiklerinle cekersen ID'yi etmez iste. Yazdim bak yukarda. Oku lan azcik.
Mum_Chamber Mesaj tarihi: Ekim 30, 2011 Mesaj tarihi: Ekim 30, 2011 database'de tekrar bir select sorgusu calistirmayi gerektirecek bir katkisi yok soylediginin. last_insert_id en dogru cozum.
di Mesaj tarihi: Ekim 30, 2011 Mesaj tarihi: Ekim 30, 2011 Tek kullanicili bir kontrol paneli senaryosu icin evet ama diger durumlar icin degil maalesef.
Mum_Chamber Mesaj tarihi: Ekim 30, 2011 Mesaj tarihi: Ekim 30, 2011 http://dev.mysql.com/doc/refman/5.0/en/information-functions.html#function_last-insert-id MySQL documentation said: The ID that was generated is maintained in the server on a per-connection basis. This means that the value returned by the function to a given client is the first AUTO_INCREMENT value generated for most recent statement affecting an AUTO_INCREMENT column by that client. This value cannot be affected by other clients, even if they generate AUTO_INCREMENT values of their own. This behavior ensures that each client can retrieve its own ID without concern for the activity of other clients, and without the need for locks or transactions. bazen dersini calismadigini dusunuyorum di ;)
di Mesaj tarihi: Ekim 30, 2011 Mesaj tarihi: Ekim 30, 2011 Eheh. Yok gayet calistim dersimi de kacirmisim orayi. Sirf dogru mu diye acip baktim az once. Neyse dur kilif bulayim; Al bak ayni sayfada tek seferde multi-row instert edersen ya da delete edersen patliyor diye ornek vermis!!! sadas
Mum_Chamber Mesaj tarihi: Ekim 30, 2011 Mesaj tarihi: Ekim 30, 2011 ehehe evet, eger oyle ters taklalar cifte soltiler yapiyorsan select'le almak sart.
Cd- Mesaj tarihi: Ekim 31, 2011 Mesaj tarihi: Ekim 31, 2011 SELECT seq from SQLITE_SEQUENCE WHERE name = "tableName"
odullusoru Mesaj tarihi: Ekim 31, 2011 Mesaj tarihi: Ekim 31, 2011 di said: Eheh. Yok gayet calistim dersimi de kacirmisim orayi. öyle ders mi çalışır, bilmiyorsun insanları yanlış yönlendirme. bizim it camiası deyip ortada gezmekle olmaz bu işler.
Seele Mesaj tarihi: Ekim 31, 2011 Mesaj tarihi: Ekim 31, 2011 mysql_query("INSERT INTO mytable (product) values ('kossu')"); printf("Der zuletzt eingefügte Datensatz hat die ID %dn", mysql_insert_id()); mssql icin SELECT SCOPE_IDENTITY()
4Ever Mesaj tarihi: Ekim 31, 2011 Mesaj tarihi: Ekim 31, 2011 Olayı ne kadar büyültmüşsünüz, herkes aynı örneği vermiş işte :)
Öne çıkan mesajlar