Miodek
11.09.2007, 09:51:57
Witam mam taki problem.
Stworzyłem następującą tabelę:
CREATE TABLE Pracownik
(
PESEL varchar(11) NOT NULL DEFAULT '0',
Imie varchar(20) NOT NULL DEFAULT '',
Nazwisko varchar(30) NOT NULL DEFAULT '',
Wiek int(3) NOT NULL CHECK (Wiek>0),
PRIMARY KEY (PESEL)
);
I jeśli nawet do pola wiek wstawię wartość mniejszą od zera do Mysql to przyjmuje i zapisuje do tabeli. Co robię nie tak?
JaRoPHP
11.09.2007, 17:14:36
Fragment
dokumentacji:
Cytat
For other storage engines, MySQL Server parses and ignores the FOREIGN KEY and REFERENCES syntax in CREATE TABLE statements. The CHECK clause is parsed but ignored by all storage engines.
Miodek
11.09.2007, 22:08:37
No to nie rozumiem po co wogóle jest ta instukcja skoro nie można z niej korzystać ? Czy jest jakiś inny sposób aby rozwiązać problem z "wymuszaniem" odpowiedniego zakresu wstawianych danych (oczywiście na poziomie bazy).
wijet
11.09.2007, 22:49:54
Skorzystaj z triggerow, taka instrukcja jest by w pewnym stopniu zachować kompatybilność z czymś tam.
Miodek
19.09.2007, 19:38:21
Akurat do tego co chcę zrobić trigerry się nie naddają
Skorzystaj z PostgreSQL

Zresztą pisałem o tym wkurzającym problemie MySQL + check na swoim bogu