[Linux-programlama] Re: MySQL ile sorgu

---------

New Message Reply About this list Date view Thread view Subject view Author view Attachment view

From: Volkan YAZICI (yazicivo@ttnet.net.tr)
Date: Sun 19 Mar 2006 - 17:00:17 EET


On Mar 19 02:31, Kerem Can KarakaÅŸ wrote:
> Veri tabanında bu fonksiyonlar ile ilgili sorunları tam olarak çözen
> nihai insert kod parçası için.
>
> <?
>
> mysql_query("LOCK TABLES apc_forms WRITE");
> mysql_query("SET AUTOCOMMIT = 0");
> mysql_query("INSERT INTO apc_forms (form_title, form_event_id,
> form_expirey) VALUES ('title',1,'2005-10-10')");
> define('ID',mysql_query("SELECT LAST_INSERT_ID()"));
> mysql_query("COMMIT");
> mysql_query("UNLOCK TABLES");
>
> ?>

Kesinlikle böyle bir şey kullanılmaması gerektiği fikrindeyim.
Yukarıdaki yöntem, probleme son derece yanlış bir yaklaşım sunuyor.
Basit bir auto_incerement tipindeki alanın değerini o oturum için
öğrenmek amacıyla koskoca bir tablonun yazmaya karşı kilitlenmesi akıl
alacak bir davranış değildir. (PostgreSQL'in MVCC mimarisinden dolayı
yavaş olduğu hakkında dedi kodu üretenler burada da seslerini
yükseltselerdi keşke.)

Sorunun doğru çözümü (en azından MySQL tarafında) nedir bilemem, fakat
bunun kesinlikle yanlış çözüm olduğundan eminim.

İyi çalışmalar.

P.S. MySQL hakkında çok bir bilgim yok. Belki şu belge yardımcı
     olabilir:
     
     [22.2.13.3. How to Get the Unique ID for the Last Inserted Row]
     http://dev.mysql.com/doc/refman/5.0/en/getting-unique-id.html

_______________________________________________
Linux-programlama mailing list
Linux-programlama@liste.linux.org.tr
http://liste.linux.org.tr/mailman/listinfo/linux-programlama


New Message Reply About this list Date view Thread view Subject view Author view Attachment view

---------

Bu arsiv hypermail 2.1.2 tarafindan uretilmistir.