MySQL - İşlemler

İşlem, tek bir iş birimi gibi gerçekleştirilen sıralı bir veritabanı işleme işlemleri grubudur. Diğer bir deyişle, grup içindeki her bir işlem başarılı olmadıkça bir işlem asla tamamlanmayacaktır. İşlem içindeki herhangi bir işlem başarısız olursa, işlemin tamamı başarısız olur.

Pratik olarak, birçok SQL sorgusunu bir grupta toplayacaksınız ve hepsini bir işlemin parçası olarak birlikte yürüteceksiniz.

İşlemlerin Özellikleri

İşlemler, genellikle kısaltmayla anılan aşağıdaki dört standart özelliğe sahiptir. ACID -

  • Atomicity- Bu, çalışma birimindeki tüm işlemlerin başarıyla tamamlanmasını sağlar; aksi takdirde, işlem başarısızlık noktasında iptal edilir ve önceki işlemler önceki durumuna geri döndürülür.

  • Consistency - Bu, veritabanının başarıyla tamamlanmış bir işlemden sonra durumları doğru şekilde değiştirmesini sağlar.

  • Isolation - Bu, işlemlerin birbirleri üzerinde bağımsız ve şeffaf bir şekilde işlemesini sağlar.

  • Durability - Bu, bir sistem arızası durumunda taahhüt edilen bir işlemin sonucunun veya etkisinin devam etmesini sağlar.

MySQL'de işlemler ifade ile başlar BEGIN WORK ve ya bir COMMIT veya a ROLLBACKBeyan. Başlangıç ​​ve bitiş ifadeleri arasındaki SQL komutları işlemin büyük kısmını oluşturur.

COMMIT ve GERİ DÖN

Bu iki anahtar kelime Commit ve Rollback çoğunlukla MySQL İşlemleri için kullanılır.

  • Başarılı bir işlem tamamlandığında, ilgili tüm tablolarda yapılan değişikliklerin geçerli olması için COMMIT komutu verilmelidir.

  • Bir hata oluşursa, işlemde başvurulan her tabloyu önceki durumuna döndürmek için bir ROLLBACK komutu verilmelidir.

Adlı oturum değişkenini ayarlayarak bir işlemin davranışını kontrol edebilirsiniz. AUTOCOMMIT. AUTOCOMMIT 1 (varsayılan) olarak ayarlanmışsa, her SQL ifadesi (bir işlemin içinde veya dışında) tam bir işlem olarak kabul edilir ve tamamlandığında varsayılan olarak taahhüt edilir.

AUTOCOMMIT, 0 olarak ayarlandığında, SET AUTOCOMMIT = 0 komutu, sonraki ifade dizisi bir işlem gibi davranır ve açık bir COMMIT ifadesi yayınlanana kadar hiçbir etkinlik gerçekleştirilmez.

Bu SQL komutlarını PHP'de şu komutu kullanarak çalıştırabilirsiniz: mysql_query() işlevi.

İşlem Üzerine Genel Bir Örnek

Bu olaylar dizisi, kullanılan programlama dilinden bağımsızdır. Mantıksal yol, uygulamanızı oluşturmak için kullandığınız dilde oluşturulabilir.

Bu SQL komutlarını PHP'de şu komutu kullanarak çalıştırabilirsiniz: mysql_query() işlevi.

  • SQL komutunu vererek işleme başlayın BEGIN WORK.

  • SELECT, INSERT, UPDATE veya DELETE gibi bir veya daha fazla SQL komutu verin.

  • Herhangi bir hata olup olmadığını ve her şeyin ihtiyacınıza göre olup olmadığını kontrol edin.

  • Herhangi bir hata varsa, bir ROLLBACK komutu verin, aksi takdirde bir COMMIT komutu verin.

MySQL'de İşlem Güvenli Tablo Türleri

İşlemleri doğrudan kullanamazsınız, ancak bazı istisnalar için kullanabilirsiniz. Ancak güvenli ve garantili değillerdir. MySQL programlamanızda işlemleri kullanmayı planlıyorsanız, tablolarınızı özel bir şekilde oluşturmanız gerekir. İşlemleri destekleyen birçok tablo türü vardır, ancak en popüler olanıInnoDB.

InnoDB tabloları için destek, kaynaktan MySQL derlenirken belirli bir derleme parametresi gerektirir. MySQL sürümünüz InnoDB desteğine sahip değilse, İnternet Servis Sağlayıcınızdan InnoDB tablo türlerini destekleyen bir MySQL sürümü oluşturmasını isteyin veyaMySQL-Max Binary Distribution Windows veya Linux / UNIX için ve bir geliştirme ortamında tablo türüyle çalışın.

MySQL kurulumunuz InnoDB tablolarını destekliyorsa, bir TYPE = InnoDB tablo oluşturma ifadesinin tanımı.

Örneğin, aşağıdaki kod adında bir InnoDB tablosu oluşturur tcount_tbl -

root@host# mysql -u root -p password;
Enter password:*******

mysql> use TUTORIALS;
Database changed

mysql> create table tcount_tbl
   -> (
   -> tutorial_author varchar(40) NOT NULL,
   -> tutorial_count  INT
   -> ) TYPE = InnoDB;
Query OK, 0 rows affected (0.05 sec)

InnoDB hakkında daha fazla ayrıntı için, aşağıdaki bağlantıya tıklayabilirsiniz - InnoDB

Gibi diğer tablo türlerini kullanabilirsiniz GEMINI veya BDB, ancak bu iki tablo türünü destekleyip desteklemediğine bağlı olarak kurulumunuza bağlıdır.