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

  • ChannelRichard

    ChannelRicha

    7 Kasım 2008
  • Hidden Wolf TV

    Hidden Wolf

    1 EKİM 2009
  • LinusTechTips

    LinusTechTip

    25 Kasım 2008