Mysql Transaction

Transaction kısaca sıralı işlemlerdir. Bir biri ile ilişkili bir den fazla SQL çalıştıracağınız zaman kullanılır. Amaç sorgulardan birisinde sorun olursa ilişkili tüm sorguları geri çekmektir. Eğer bütün sorgular doğru çalıştıysa MySql‘e işler. Transaction sadece MySql‘de kullanılan bir teknik değildir. Hemen her veri tabanında mevcuttur. PHP veya Python tarafında ise testler sırasında girilen verilerin temizlenmesi için kullanılabilir.

Kullanımı

MySql‘de Transaction kullanabilmek için açılan InnoDB engine kullanılması gerekiyor.

drop table tests;

CREATE TABLE tests (
  id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
  name VARCHAR(255) NOT NULL,
  surname VARCHAR(255) NOT NULL
) ENGINE=INNODB;

tests tablosunu oluşturduk. Oluştururken Engine olarak INNODB ayarladık. Şimdi Transaction başlatıtalım.

START TRANSACTION;

Transaction başlattıktan sonra çalıştırmak istediğimiz SQL sorgularını yazabiliriz.

insert into tests (name,surname) values ('Fatih', 'İRDAY');
update tests set name = 'Tunahan' where id = LAST_INSERT_ID();

SQL‘leri geri çekmek için

rollback;

SQL‘leri kalıcı olarak işlemek için ise

commit;

Sorgularını çalıştırabiliriz. Tek tablodan örnek verince pek anlamlı gelmemiş olabilir ama ilişkili tablolara sıralı işlem yaparken oldukça iş gören bir tekniktir.

ilk Yorum

Yorum Ekle

E-posta hesabınız yayımlanmayacak.

Gerçek kişi doğrulaması
47 − = 42