INSERT Cümlesi Kilit bekler mi?

Merhaba Arkadaşlar,

INSERT cümlesi kilit bekler mi? Evet bir durumda bekler. Eğer işlem yapılan tabloda PK, Unique constraint varsa bekleyebilir.

Aşağıdaki örnekle basitçe test edebiliriz.

CREATE TABLE T1 (
C1 NUMBER(10),
C2 NUMBER(10),
PRIMARY KEY (C1));

INSERT INTO T1 SELECT ROWNUM, ROWNUM*10 FROM DUAL CONNECT BY LEVEL<=1000000;

COMMIT;

session 1:

UPDATE T1
SET C1=-C1
WHERE C1<=100;

Bu esnada henüz commit yapılmadan 2. session insert yaparsa, 2. session 1. session ‘ı bekler.

session 2:

INSERT INTO T1 VALUES (-10,10);

Session 2 kilit bekler.

ilk session 100 den küçük değerleri – yaparak update ediyor. Bende INSERT cümlesinde pk alanına -10 insert ediyorum. -10 için update cümlesi kilit attığı için ve benim insertim pkdan dolayı -10 ‘un varlığını kontrol ettiği için bekleyecektir.

PK veya Unique constraint olmasa INSERT beklemeyecekti.

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Google fotoğrafı

Google hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Connecting to %s