🏫 classes_generate_code_trigger#
Yeni sınıf oluşturulduğunda otomatik olarak benzersiz sınıf kodu atayan trigger.
Trigger Tanımı#
CREATE OR REPLACE TRIGGER "classes_generate_code_trigger"
BEFORE INSERT ON "public"."classes"
FOR EACH ROW
EXECUTE FUNCTION "public"."generate_class_code"();Amaç#
Yeni bir sınıf oluşturulduğunda ve kod alanı boş bırakıldığında otomatik olarak 8 karakterlik benzersiz bir sınıf kodu üretir ve atar.
Tetiklenme Koşulu#
- Event: INSERT
- Timing: BEFORE
- Level: ROW
- Table: public.classes
Çalıştırdığı Fonksiyon#
SQL Kodu#
CREATE OR REPLACE TRIGGER "classes_generate_code_trigger"
BEFORE INSERT ON "public"."classes"
FOR EACH ROW
EXECUTE FUNCTION "public"."generate_class_code"();Kullanım Senaryosu#
- Öğretmen yeni sınıf oluşturur
- Code alanı boş bırakılır
- Trigger tetiklenir
- Benzersiz kod üretilir (ör: “A2X9K7B1”)
- Kod sınıfa atanır
- Sınıf veritabanına kaydedilir
Örnek#
-- Manuel kod ile
INSERT INTO classes (name, teacher_id, school_id, code)
VALUES ('10-A Matematik', 5, 1, 'CUSTOM01');
-- Trigger çalışmaz, verilen kod kullanılır
-- Otomatik kod ile
INSERT INTO classes (name, teacher_id, school_id)
VALUES ('10-B Fizik', 5, 1);
-- Trigger çalışır, otomatik kod üretilirİlgili Tablolar#
public.classes
Notlar#
- ✅ Benzersizlik garantili
- ✅ 8 karakter alfanumerik
- ✅ Sadece code NULL olduğunda çalışır
- ✅ Duplicate kod engelleme mekanizması
- ⚠️ Maksimum 100 deneme (collision prevention)