SORU
22 Ocak 2010, Cuma


MySQL CHECK kısıtlaması çalışmıyor

İlk olarak bir tablo gibi oluşturdum

CREATE TABLE Customer (
  SD integer CHECK (SD > 0),
  Last_Name varchar (30),
  First_Name varchar(30)
);

ve sonra bu tablodaki değerleri eklenir

INSERT INTO Customer values ('-2','abc','zz');

MySQL bir hata göstermiyor, değerlerini kabul etti.

CEVAP
22 Ocak 2010, Cuma


MySQL Reference Manual diyor ki:

CHECK yan ayrıştırılmış ama tüm depolama motorları tarafından dikkate alınmaz.

Bir tetikleyici olabilir

mysql> delimiter //
mysql> CREATE TRIGGER trig_sd_check BEFORE INSERT ON Customer 
    -> FOR EACH ROW 
    -> BEGIN 
    -> IF NEW.SD<0 THEN 
    -> SET NEW.SD=0; 
    -> END IF; 
    -> END
    -> //
mysql> delimiter ;

Bu yardımcı olur umarım.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Creavite

    Creavite

    8 Mart 2009
  • TantalizingTrance

    TantalizingT

    15 ŞUBAT 2009
  • The CGBros

    The CGBros

    20 AĞUSTOS 2011