Hallo,
MySQL 5.1.41
CREATE TABLE file (
-- [...]
CHECK ( (userid!=NULL AND betriebid=NULL AND unternid=NULL) OR
(userid=NULL AND betriebid!=NULL AND unternid=NULL) OR
(userid=NULL AND betriebid=NULL AND unternid!=NULL) )
) ENGINE = InnoDB;
[...] check() greift nicht (scheinbar bei MySQL generell nicht nach meinen Recherchen).
nicht nur scheinbar. Das Verhalten ist im Handbuch dokumentiert:
<zitat>
The CHECK clause is parsed but ignored by all storage engines.
</zitat>
Das gilt übrigens auch für MySQL 5.5 und 5.6.
Freundliche Grüße
Vinzenz