Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Sign in
Toggle navigation
T
ttzc0800-harkka
Project
Project
Details
Activity
Releases
Cycle Analytics
Insights
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Locked Files
Issues
1
Issues
1
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Security & Compliance
Security & Compliance
Dependency List
Packages
Packages
List
Container Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
M1888
ttzc0800-harkka
Commits
f9dd09f0
Commit
f9dd09f0
authored
Apr 12, 2019
by
M1888
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
triggerit done
parent
d838bc55
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
62 additions
and
2 deletions
+62
-2
create-kendokanta.sql
create-kendokanta.sql
+62
-2
No files found.
create-kendokanta.sql
View file @
f9dd09f0
...
...
@@ -340,16 +340,76 @@ CREATE TRIGGER `ottelutapahtuma_ins` BEFORE INSERT ON `ottelutapahtuma`
END
IF
;
END
//
-- Sama
trigger, kun ylempi constraint.
CREATE
TRIGGER
`
vain_yksi_
tapahtuma_upd`
BEFORE
UPDATE
ON
`ottelutapahtuma`
-- Sama
kuin ylempi, mutta updatelle
CREATE
TRIGGER
`
ottelu
tapahtuma_upd`
BEFORE
UPDATE
ON
`ottelutapahtuma`
FOR
EACH
ROW
BEGIN
-- kaikki mahdollisesti käytettävät muuttujat on määriteltävä
-- heti BEGIN-blokin alussa...
DECLARE
kj
INT
;
DECLARE
vj
INT
;
DECLARE
id
INT
;
DECLARE
id2
INT
;
DECLARE
joukkue1
INT
;
DECLARE
joukkue2
INT
;
-- Yksi ottelutapahtuma-rivi kuvaa oikeasti vain ja ainoastaan yhtä tapahtumaa:
-- aikalisää, jäähyä, rankkaria tai maalia.
IF
((
CASE
WHEN
NEW
.
aikalisa_id
IS
NULL
THEN
0
ELSE
1
END
)
+
(
CASE
WHEN
NEW
.
jaahy_id
IS
NULL
THEN
0
ELSE
1
END
)
+
(
CASE
WHEN
NEW
.
rankkari_id
IS
NULL
THEN
0
ELSE
1
END
)
+
(
CASE
WHEN
NEW
.
maali_id
IS
NULL
THEN
0
ELSE
1
END
)
!=
1
)
THEN
CALL
`ottelutapahtuma_liikaa_tapahtumia`
;
END
IF
;
SET
kj
=
(
SELECT
kotijoukkue
FROM
ottelu
WHERE
ottelu_id
=
NEW
.
ottelu_id
);
SET
vj
=
(
SELECT
vierasjoukkue
FROM
ottelu
WHERE
ottelu_id
=
NEW
.
ottelu_id
);
-- aikalisän voi pitää vain otteluun kuuluva joukkue
IF
(
NEW
.
aikalisa_id
IS
NOT
NULL
)
THEN
SET
id
=
(
SELECT
joukkue_id
FROM
aikalisa
WHERE
aikalisa_id
=
NEW
.
aikalisa_id
);
IF
(
id
NOT
IN
(
kj
,
vj
))
THEN
CALL
`aikalisa_vaara_joukkue`
;
END
IF
;
END
IF
;
-- jäähylle voi joutua vain pelaaja, joka on joukueessa joka pelaa kys. ottelua
IF
(
NEW
.
jaahy_id
IS
NOT
NULL
)
THEN
SET
id
=
(
SELECT
pelaaja_id
FROM
jaahy
WHERE
jaahy_id
=
NEW
.
jaahy_id
);
IF
(
id
NOT
IN
(
SELECT
pelaaja_id
FROM
sopimus
WHERE
joukkue_id
IN
(
kj
,
vj
)))
THEN
CALL
`jaahy_vaara_pelaaja`
;
END
IF
;
END
IF
;
-- rankkarin voi tehdä vain oikeaan joukkueeseen kuuluva pelaaja
IF
(
NEW
.
rankkari_id
IS
NOT
NULL
)
THEN
SET
id
=
(
SELECT
pelaaja_id
FROM
rangaistuslaukaus
WHERE
rankkari_id
=
NEW
.
rankkari_id
);
IF
(
id
NOT
IN
(
SELECT
pelaaja_id
FROM
sopimus
WHERE
joukkue_id
IN
(
kj
,
vj
)))
THEN
CALL
`rankkari_vaara_pelaaja`
;
END
IF
;
END
IF
;
-- maalin voi tehdä vain otteluun kuuluva joukkue.
-- maalin voi tehdä vain pelaaja, joka kuuluu jompaan kumpaan joukkueeseen.
IF
(
NEW
.
maali_id
IS
NOT
NULL
)
THEN
SET
id
=
(
SELECT
joukkue_id
FROM
maali
WHERE
maali_id
=
NEW
.
maali_id
);
IF
(
id
NOT
IN
(
kj
,
vj
))
THEN
CALL
`maali_vaara_joukkue`
;
END
IF
;
SET
id
=
(
SELECT
pelaaja_id
FROM
maali
WHERE
maali_id
=
NEW
.
maali_id
);
IF
(
id
NOT
IN
(
SELECT
pelaaja_id
FROM
sopimus
WHERE
joukkue_id
IN
(
kj
,
vj
)))
THEN
CALL
`maali_vaara_pelaaja`
;
END
IF
;
SET
id2
=
(
SELECT
syottaja_id
FROM
maali
WHERE
maali_id
=
NEW
.
maali_id
);
IF
(
id2
IS
NOT
NULL
)
THEN
SET
joukkue1
=
(
SELECT
joukkue_id
FROM
sopimus
WHERE
pelaaja_id
=
id
);
SET
joukkue2
=
(
SELECT
joukkue_id
FROM
sopimus
WHERE
pelaaja_id
=
id2
);
IF
(
joukkue1
!=
joukkue2
)
THEN
CALL
`maali_vaara_syottaja`
;
END
IF
;
END
IF
;
END
IF
;
END
//
DELIMITER
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment