Хелпикс

Главная

Контакты

Случайная статья





Целостность данных, триггеры в MySQL



Целостность данных, триггеры в MySQL

Лабораторная работа №7

1. Создать или открыть ранее сохраненную базу данных «university» в программе-дизайнере MySQL Workbench.

2. В базе данных «university» создать таблицу «users» с полями:

· id тип int – первичный ключ (PK);

· name тип varchar(45), не нулевое (NN);

· isupdate тип boolean, не нулевое (NN), по умолчанию False.

3. Для таблицы «users», создать триггер (вкладка Triggers):

USE `university`;

DELIMITER //

CREATE TRIGGER insertResult AFTER INSERT ON users

FOR EACH ROW

BEGIN

INSERT INTO results SET laboratory=false, examination = 0, u_id = NEW.id;

END;//

4. В базе данных «university» создать таблицу «results» с полями:

· id тип int – счетчик (AI), первичный ключ (PK), не нулевое (NN);

· laboratory тип boolean, не нулевое (NN);

· examination тип int, не нулевое (NN);

· u_id тип int, не нулевое (NN).

5. Для таблицы «results» создать Foreign Key (вкладка Foreign Keys) с именем «u_id» на таблицу «university.users», колонку «id». В качестве события указать «On Delete » со значение «CASCADE».

6. Для таблицы «results», создать триггер (вкладка Triggers):

USE `university`;

DELIMITER //

CREATE TRIGGER updateUser AFTER UPDATE ON results

FOR EACH ROW

BEGIN

UPDATE users Set isupdate=true WHERE id = NEW.u_id;

END;//

7. Сохранить созданную в программе-дизайнере схему базы данных на локальный компьютер. Запустить генерацию базы данных на сервере MySQL. Подключиться к базе данных MySQL через терминал (mysql –u root –p).

8. Активизировать базу данных «university» (use). В командной строке выполнить следующую последовательность команд:

· INSERT INTO users VALUES (1, ‘Ivan’, 0);

· INSERT INTO users VALUES (2, ‘Petr’, 0);

· INSERT INTO users VALUES (3, ‘Egor’, 0);

· INSERT INTO users VALUES (4, ‘Vladimir’, 0);

· SELECT * FROM users; (результаты вывода записать в черновик).

· SELECT * FROM results; (результаты вывода записать в черновик).

· DELETE FROM users WHERE name LIKE ‘Ivan’;

· DELETE FROM users WHERE name LIKE ‘Vladimir’;

· SELECT * FROM users; (результаты вывода записать в черновик).

· SELECT * FROM results; (результаты вывода записать в черновик).

· UPDATE results SET laboratory = true, examination = 5 WHERE u_id = 2;

· SELECT * FROM results WHERE u_id = 2; (результаты вывода записать в черновик).

· SELECT * FROM users; (результаты вывода записать в черновик).

9. Проанализировать полученные результаты.

 



  

© helpiks.su При использовании или копировании материалов прямая ссылка на сайт обязательна.