Книга рецептов

  • Автор записи:
  • Рубрика записи:Без рубрики
CREATE TABLE kategorooria(
    kategooria_id int primary key AUTO_INCREMENT,
    kategooria_nimi varchar(50) unique);
);

CREATE TABLE kasutaja(
    kasutaja_id int primary key AUTO_INCREMENT,
    eesnimi varchar(50),
    peerenimi varchar(50),
    email varchar(50)
);

alter table retsept add foreign key(kasutaja_id) REFERENCES kasutaja(kasutaja_id); 

create table toiduaine( toiduaine_id int primary key AUTO_INCREMENT, toiduaine_nimi varchar(100) UNIQUE); 

create table tehtud(
    tehtud_id int primary key AUTO_INCREMENT,
    tehtud_kp date,
    retsept_id int,
    FOREIGN key (retsept_id) REFERENCES retsept(retsept_id)
    );

create table yhik(
    yhik_id int primary key AUTO_INCREMENT,
    yhik_nimi varchar(100) unique);


create table koostis(
    koostis_id int primary key AUTO_INCREMENT,
    kogus int,
    retsept_id int,
    toiduaine_id int,
    yhik_id int,
    FOREIGN key (retsept_id) REFERENCES retsept(retsept_id),
	FOREIGN key (toiduaine_id) REFERENCES toiduaine(toiduaine_id),
	FOREIGN key (yhik_id) REFERENCES yhik(yhik_id))

CREATE PROCEDURE `tehtud_lisamine`(IN `Kuupaev` DATE, IN `Retsept_id` INT) NOT DETERMINISTIC CONTAINS SQL SQL SECURITY DEFINER BEGIN
INSERT INTO tehtud(tehtud_kp, retsept_id)
VALUES (Kuupaev, Retsept_id);
SELECT * FROM tehtud
INNER JOIN retsept
ON tehtud.retsept_id = retsept.retsept_id;
END


CREATE PROCEDURE `retsepti_alter`(IN `tabeli_nimi` VARCHAR(20), IN `veerunimi` VARCHAR(20), IN `type` VARCHAR(20)) NOT DETERMINISTIC CONTAINS SQL SQL SECURITY DEFINER BEGIN
SET @STMT = CONCAT("ALTER TABLE ", tabeli_nimi, " ", "ADD COLUMN ", veerunimi, " ", type);
PREPARE S FROM @STMT;
EXECUTE S;
DEALLOCATE PREPARE S;
END

DROP TRIGGER IF EXISTS `retseptUpdate`;CREATE DEFINER=`root`@`localhost` TRIGGER `retseptUpdate` BEFORE UPDATE ON `retsept` FOR EACH ROW INSERT INTO logi(kuupaev, andmed)
SELECT NOW(), CONCAT(old.retsepti_nimi, "-", new.retsepti_nimi, " ", n1.eesnimi, "-", n2.eesnimi)
FROM retsept
INNER JOIN kasutaja n1 ON OLD.kasutaja_id=n1.kasutaja_id
INNER JOIN kasutaja n2 ON NEW.kasutaja_id = n2.kasutaja_id

WHERE retsept.retsept_id = new.retsept_id