· 7 years ago · Sep 24, 2018, 12:38 PM
1CREATE VIEW Koncerty (`nazwa_klubu`, `adres_klubu`, `nazwa_zespolu`,
2`ilosc_czlonkow_zespolu`, `data_wystepu`) AS
3( SELECT `nazwa_klubu`, `kb`.`adres`, `nazwa_zespolu`, `zs`.`ilosc_czlonkow`,
4`data_wystepu` FROM `Koncert` AS kc
5INNER JOIN `Klub` AS kb ON `kc`.`nazwa_klubu` = `kb`.`nazwa`
6INNER JOIN `Zespol` AS zs ON `kc`.`nazwa_zespolu` = `zs`.`nazwa` );
7
8DROP TRIGGER IF EXISTS `before_koncerty_insert`
9DELIMITER $$
10CREATE TRIGGER `before_koncerty_insert` BEFORE INSERT ON `Koncerty`
11FOR EACH ROW
12BEGIN
13
14DECLARE i INT DEFAULT 0;
15
16SELECT COUNT(*) INTO i FROM `Koncerty` WHERE
17`nazwa_klubu` = NEW.`nazwa_klubu` AND
18`adres_klubu` = NEW.`adres_klubu` AND
19`nazwa_zespolu` = NEW.`nazwa_zespolu` AND
20`ilosc_czlonkow_zespolu` = NEW.`ilosc_czlonkow_zespolu` AND
21`data_wystepu` = NEW.`data_wystepu`;
22
23
24
25IF i > 0 THEN
26SIGNAL SQLSTATE '58005'
27SET MESSAGE_TEXT = 'Blad! Taka krotka juz istnieje';
28END IF;
29
30END $$
31DELIMITER ;
32
33CREATE TABLE IF NOT EXISTS `Klub`
34(
35 `nazwa` varchar(50) NOT NULL,
36 `adres` varchar(70) NOT NULL,
37 PRIMARY KEY (`nazwa`)
38) ENGINE = InnoDB DEFAULT CHARSET=utf8;
39
40CREATE TABLE IF NOT EXISTS `Zespol`
41(
42 `nazwa` varchar(50) NOT NULL,
43 `ilosc_czlonkow` int(3) NOT NULL,
44 PRIMARY KEY (`nazwa`)
45) ENGINE = InnoDB DEFAULT CHARSET=utf8;
46
47CREATE TABLE IF NOT EXISTS `Koncert`
48(
49 `nazwa_klubu` varchar(50) NOT NULL,
50 `nazwa_zespolu` varchar(50) NOT NULL,
51 `data_wystepu` datetime NOT NULL,
52 FOREIGN KEY (`nazwa_klubu`) REFERENCES `Klub`(`nazwa`),
53 FOREIGN KEY (`nazwa_zespolu`) REFERENCES `Zespol`(`nazwa`)
54) ENGINE = InnoDB DEFAULT CHARSET=utf8;
55
56create or replace view dealer_current_stage as
57 select
58 dsc.dealer_id,
59 dsc.new_stage current_stage,
60 dsc.change_date last_stage_change_date
61 from
62 dealer_current_stage_pre dcsp
63 left join
64 risk.dealer_stage_changes dsc ON dsc.change_date = dcsp.max_stage_change_date
65 and dsc.dealer_id = dcsp.dealer_id
66 group by dsc.dealer_id;