MySQL 5.1.41
Hallo Forum,
kommen wir gleich zur Sache:
CREATE TABLE file (
fileid INT UNSIGNED AUTO_INCREMENT PRIMARY KEY NOT NULL,
filename_upload varchar(255) NOT NULL,
filename_system varchar(255) NOT NULL,
extid INT UNSIGNED,
frontuseid INT UNSIGNED,
userid INT UNSIGNED DEFAULT NULL,
betriebid INT UNSIGNED DEFAULT NULL,
unternid INT UNSIGNED DEFAULT NULL,
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;
INSERT INTO fileid VALUES(DEFAULT,"filename_upload.dat","mussichmirnochueberlegen",1,1,DEFAULT,DEFAULT,DEFAULT);
Ich möchte erreichen, dass ein INSERT oder UPDATE auf die Tabelle file nur unter 3 Bedingungen ausgeführt wird.
Und zwar:
userid=INT betriebid=NULL unternid=NULL
ODER
userid=NULL betriebid=INT unternid=NULL
ODER
userid=NULL betriebid=NULL unternid=INT
Im die obrige Tabelle kann ich aber reinstecken was ich mag :), das check() greift nicht (scheinbar bei MySQL generell nicht nach meinen Recherchen).
Hat jemand von euch eine gescheite Idee wie ich das anstellen kann?
Grüße aus Berlin,
Jan