Hallo zusammen,
folgende Tabellen habe ich angelegt:
CREATE TABLE Mannschaft
(
ID_Mannschaft int NOT NULL,
FK_ID_Trainer int NOT NULL,
Mannschaftsname varchar(40) NOT NULL,
CONSTRAINT Mannschaft_pkey PRIMARY KEY (ID_Mannschaft),
CONSTRAINT Mannschaft_FK_ID_Trainer_fkey FOREIGN KEY (FK_ID_Trainer)
REFERENCES Trainer (FK_ID_Trainer) MATCH SIMPLE
ON UPDATE RESTRICT ON DELETE RESTRICT
)
CREATE TABLE Spieler
(
FK_ID_Spieler int NOT NULL,
Spielername varchar(40) NOT NULL,
CONSTRAINT Spieler_pkey PRIMARY KEY (FK_ID_Spieler),
CONSTRAINT Spieler_FK_ID_Spieler_fkey FOREIGN KEY (FK_ID_Spieler)
REFERENCES Mitglieder (FK_ID_Mitglied) MATCH SIMPLE
ON UPDATE CASCADE ON DELETE CASCADE
)
CREATE TABLE Kader
(
FK_ID_Mannschaft int NOT NULL,
FK_ID_Spieler int NOT NULL,
CONSTRAINT Kader_pkey PRIMARY KEY (FK_ID_Mannschaft, FK_ID_Spieler),
CONSTRAINT Kader_FK_ID_Mannschaft_fkey FOREIGN KEY (FK_ID_Mannschaft)
REFERENCES Mannschaft (ID_Mannschaft) MATCH SIMPLE
ON UPDATE CASCADE ON DELETE CASCADE,
CONSTRAINT Kader_FK_ID_Spieler_fkey FOREIGN KEY (FK_ID_Spieler)
REFERENCES Spieler (FK_ID_Spieler) MATCH SIMPLE
ON UPDATE CASCADE ON DELETE CASCADE
)
Soweit so gut, nun will ich aber die maximale Anzahl von Spielern in einer Mannschaft begrenzen, bspw. auf 8 Spieler je Mannschaft. Ich wollte dies mit einem Trigger lösen, doch leider weiß ich nicht genau wie:
CREATE TRIGGER trigger01
BEFORE INSERT
ON kader
FOR EACH ROW
BEGIN
?? Abfrage wieviele Spieler bisher in der Mannschaft sind, wenn weniger als zulässiges Maximum je Mannschaft, denn füge Datensatz hinzu, ansonsten breche den Insert-Vorgang ab
END;
Bei den verbalen Ausführungen brächte ich eure Hilfe. Vorab schon mal herzlichen Dank.
Gruß
Sebastian