Точное значение внешнего ключа MySQL 'при ограничении удаления' Пункт

У меня есть две таблицы MySQL: коллекции и privacy_level .
Я определяю их с помощью отношения внешнего ключа как такового:

CREATE TABLE collections (
  coll_id smallint NOT NULL AUTO_INCREMENT UNSIGNED,
  name varchar(30) NOT NULL,
  privacy tinyint NOT NULL UNSIGNED DEFAULT '0',
  PRIMARY KEY(coll_id),
  INDEX(privacy),
  FOREIGN KEY fk_priv (privacy) REFERENCES privacy_level (level) ON UPDATE CASCADE ON DELETE RESTRICT
) ENGINE=InnoDB;  

 CREATE TABLE privacy_level (
   level tinyint NOT NULL UNSIGNED,
   name varchar(20) NOT NULL,
   PRIMARY KEY (level)
 ) ENGINE InnoDB;  

Мой вопрос касается предложения ON DELETE RESTRICT , и я не смог получить выражение ответ из онлайн-руководства или поиска в Google.

Означает ли это, что я не могу никогда удалить строку с privacy_level ?
Или это означает, что я не могу удалить строку из privacy_level , если строка из collections.privacy имеет значение, такое же, как значение в privacy_level.level ?

То есть, если privacy_level имеет level = 2 , name = 'совершенно секретно' , но нет записи в коллекциях.Privacy имеет privacy = 2 , могу ли я удалить запись level = 2 , name = 'совершенно секретно' ? Или это запрещено на всей колонке?

Спасибо за понимание.

47
задан Hari Harker 19 September 2016 в 06:39
поделиться