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ÅŸ:
Mysql hata 1452 - Olamaz ya çocuk bir ...
MySQL Hata 1215: yabancı anahtar kısıt...
Kuvvet mysql atlayarak yabancı anahtar...
MySQL Yabancı Anahtar Kısıtlaması Ekle...
Neden'kendini kapatma script etik...