Veritabanı Tetikleyici Kütüphanesi


    × Bunları biliyor muydunuz?
"ZN Framework 2011 senesinden beri geliştirilmeye devam etmektedir."


(ZN >= 4.0.1-EIP)

Tetikleyiciler genellikle birden fazla sorgunun aynı anda çalıştırılması istendiği zaman kullanılır. SQL kaynaklarından TRIGGER kullanımı hakkında bilgi sahibi olabilirsiniz. Bu bölümde tetikleyicilerin ZN Framework ile nasıl gerçekleştirildiği anlatılmıştır.

 

 

# Yöntemler


This when(String $type)
This event(String $type)
This order(String $type, String $name)
This body(String ...$args)
Bool create(String $name)
Bool drop(String $name)
Array list(String $name = NULL)
Bool exists(String $name)

 

 

# When (ZN >= 4.0.1-EIP)


 Sorguda BEFORE ve AFTER durumunu belirtmek için kullanılır.

Parametreler
String $type Tür.
Seçenekler BEFORE, AFTER
Return This
Kullanımı
DBTrigger::when('BEFORE')->...

 

 

# Event (ZN >= 4.0.1-EIP)


Sorguda INSERT, UPDATE, DELETE durumunu belirtmek için kullanılır.

Parametreler
String $type Tür.
Seçenekler INSERT, UPDATE, DELETE
Return This
Kullanımı
DBTrigger::event('DELETE')->...

 

 

# Order (ZN >= 4.0.1-EIP)


Sorguda FOLLOWS, PRECEDES durumunu belirtmek için kullanılır.

Parametreler
String $type Tür.
Seçenekler FOLLOWS, PRECEDES
String $name Diğer tetikleyici adı.
Return This
Kullanımı
DBTrigger::order('FOLLOWS', ''otherTriggerName)->...

 

 

# Body (ZN >= 4.0.1-EIP)


Sorguda BEGIN ... END bloğu içerisine yazılacak komutların girilmesini sağlar.

Parametreler
String ...$queries Sorgular.
Return This
Kullanımı
DBTrigger::body('INSERT ...', 'UPDATE ...')->...

 

 

# CreateTrigger (ZN >= 4.0.1-EIP) / Create (ZN >= 4.2.8)


Tetikleyici oluşturmak için kullanılır.

Parametreler
String $name Tetikleyici adı.
Return This
Kullanımı
DBTrigger::table('exampleTable')
         ->when('before')
         ->event('insert')
         ->body('INSERT ... QUERY', 'UPDATE ... QUERY')
         ->create('exampleTrigger');
CREATE TRIGGER exampleTrigger before insert ON exampleTable
FOR EACH ROW
BEGIN INSERT ... QUERY; UPDATE ... QUERY;
END;

 

 

# DropTrigger (ZN >= 4.0.1-EIP) / Drop (ZN >= 4.2.8)


Tetikleyiciyi kaldırmak için kullanılır.

Parametreler
String $name Tetikleyici adı.
Return This
Kullanımı
DBTrigger::drop('exampleTrigger');
DROP TRIGGER exampleTrigger 

 

 

# List (ZN >= 4.3.4)


Mevcut tetikleyici listesini verir.

Parametreler
String $name = NULL Tetikleyici adı belirtilmezse tüm tetikleyiciler listelenir..
Return This
Kullanımı
output(DBTrigger::list('exampleTrigger'));
TRIGGER_CATALOG => string 'def' ( length = 5 )
TRIGGER_SCHEMA => string 'test' ( length = 6 )
TRIGGER_NAME => string 'exampleTrigger' ( length = 16 )
EVENT_MANIPULATION => string 'INSERT' ( length = 8 )
EVENT_OBJECT_CATALOG => string 'def' ( length = 5 )
EVENT_OBJECT_SCHEMA => string 'test' ( length = 6 )
EVENT_OBJECT_TABLE => string 'users' ( length = 7 )
ACTION_ORDER => string '0' ( length = 3 )
ACTION_CONDITION => NULL ( length = 0 )
ACTION_STATEMENT => string 'BEGIN INSERT INTO users (username) VALUES ('1'); END' ( length = 55 )
ACTION_ORIENTATION => string 'ROW' ( length = 5 )
ACTION_TIMING => string 'BEFORE' ( length = 8 )
ACTION_REFERENCE_OLD_TABLE => NULL ( length = 0 )
ACTION_REFERENCE_NEW_TABLE => NULL ( length = 0 )
ACTION_REFERENCE_OLD_ROW => string 'OLD' ( length = 5 )
ACTION_REFERENCE_NEW_ROW => string 'NEW' ( length = 5 )
CREATED => NULL ( length = 0 )
SQL_MODE => string 'NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' ( length = 44 )
DEFINER => string 'root@localhost' ( length = 16 )
CHARACTER_SET_CLIENT => string 'utf8' ( length = 6 )
COLLATION_CONNECTION => string 'utf8_general_ci' ( length = 17 )
DATABASE_COLLATION => string 'utf8_general_ci' ( length = 17 )

 

 

# Exists (ZN >= 4.3.4)


Tetikleyici olup olmadığını kontrol eder.

Parametreler
String $name = NULL Tetikleyici adı.
Return This
Kullanımı
output(DBTrigger::exists('exampleTrigger'));
1