ОГРАНИЧЕНИЕ MySQL

CONSTRAINT

MySQL CONSTRAINT используется для определения правил, разрешающих или ограничивающих то, какие значения могут храниться в столбцах. Целью создания ограничений является обеспечение целостности базы данных.

ОГРАНИЧЕНИЯ MySQL используются для ограничения типа данных, которые могут быть вставлены в таблицу.

ОГРАНИЧЕНИЯ MySQL можно разделить на два типа — уровень столбца и уровень таблицы.

Ограничения уровня столбца могут применяться только к одному столбцу, тогда как ограничения уровня таблицы применяются ко всей таблице.

MySQL CONSTRAINT объявляется во время создания таблицы.

MySQL CONSTRAINT:

  • NOT NULL
  • UNIQUE
  • PRIMARY KEY
  • FOREIGN KEY
  • CHECK
  • ПО УМОЛЧАНИЮ
ОГРАНИЧЕНИЕ ОПИСАНИЕ
NOT NULL В MySQL ограничение NOT NULL позволяет укажите, что столбец не может содержать никакого значения NULL. MySQL NOT NULL может использоваться для СОЗДАНИЯ и ИЗМЕНЕНИЯ таблицы.
UNIQUE Ограничение UNIQUE в MySQL не позволяет вставлять повторяющееся значение в столбец. Ограничение UNIQUE поддерживает уникальность столбца в таблице. В таблице можно использовать более одного столбца UNIQUE.
PRIMARY KEY Ограничение PRIMARY KEY для таблицы заставляет таблицу принимать уникальные данные для определенного столбца и этого ограничения создает уникальный индекс для более быстрого доступа к таблице.
FOREIGN KEY ИНОСТРАННЫЙ КЛЮЧ в MySQL создает связь между двумя таблицами по одному определенному столбцу обеих таблиц. Указанный столбец в одной таблице должен быть ПЕРВИЧНЫМ КЛЮЧОМ, на который ссылается столбец другой таблицы, известный как FOREIGN KEY.
CHECK Ограничение CHECK управляет значениями в соответствующем столбце. Ограничение CHECK определяет, является ли значение допустимым или нет, из логического выражения.
DEFAULT В таблице MySQL каждый столбец должен содержать значение (включая NULL). При вставке данных в таблицу, если в столбец не задано значение, столбец получает значение, установленное как DEFAULT.

Синтаксис:

 CREATE TABLE [имя таблицы] ([столбец  имя] [тип данных] ([размер]) [ограничение столбца]…. [ограничение таблицы] ([[имя столбца] ……]) ……);  

Приведенный выше код MySQL показывает, как создать таблицу с некоторыми ограничениями. Ограничения применяются как к столбцам, так и к таблицам.

Вы можете заменить имя таблицы, имя столбца, тип данных и размер своими собственными.

Содержание:

  • MySQL CREATE TABLE with NULL CONSTRAINT
  • MySQL CREATE TABLE для проверки значений с помощью CHECK CONSTRAINT
  • MySQL CREATE TABLE с CHECK CONSTRAINT с использованием оператора IN
  • MySQL CREATE TABLE с CHECK CONSTRAINT и оператором LIKE
  • MySQL CREATE TABLE с операторами AND и OR и ПРОВЕРИТЬ ОГРАНИЧЕНИЕ
  • MySQL UNIQUE CONSTRAINT
  • MySQL UNIQUE CONSTRAINT проверяет уникальное значение
  • MySQL CREATE TABLE with DEFAULT CONSTRAINT
  • MySQL CREATE TABLE with AUTO INCREMENT
  • MySQL PRIMARY KEY CONSTRAINT
  • MySQL CREATE ОГРАНИЧЕНИЕ ПЕРВИЧНОГО КЛЮЧА ТАБЛИЦЫ для одного столбца
  • MySQL CREATE TABLE PRIMARY KEY UNIQUE CONSTRAINT
  • MySQL CREATE TABLE PRIMARY KEY для нескольких столбцов
  • MySQL создание таблицы с FOREIGN KEY CONSTRAINT
  • MySQL CREATE TABLE с FOREIGN KEY CONSTRAINT для нескольких столбцов
  • MySQL CREATE TABLE с FOREIGN KEY CONSTRAINT на mul типовые таблицы
  • MySQL CREATE TABLE с CASCADE и RESTRICT
  • MySQL CREATE TABLE с SET NULL
  • MySQL CREATE TABLE with NO ACTION

MySQL CREATE TABLE with NULL CONSTRAINT

Использование значения по умолчанию как NOT NULL при создании В таблице MySQL можно указать, что столбцу в таблице не разрешено хранить значения NULL.

Если вы хотите создать таблицу ‘newauthor’, в которой никаким столбцам не разрешено хранить НУЛЕВЫЕ ЗНАЧЕНИЯ, можно использовать следующий оператор.

Если вы хотите создать таблицу ‘newauthor’, в которой никаким столбцам не разрешено хранить НУЛЕВЫЕ ЗНАЧЕНИЯ, следующий оператор может быть использован.

  СОЗДАТЬ ТАБЛИЦУ, ЕСЛИ НЕ СУЩЕСТВУЕТ newauthor (aut_id varchar (8) NOT NULL, aut_name varchar (50) NOT NULL, country varchar (25) NOT NULL, home_city varchar (25)  НЕНУЛЕВОЙ );   

Здесь, в приведенном выше заявлении, ограничение ‘NOT NULL’ использовалось для исключения NULL VALUE.

Следующее изображение показывает, что столбцы не принимают значения NULL.

MySQL СОЗДАТЬ ТАБЛИЦУ для проверки значений с помощью ПРОВЕРИТЬ ОГРАНИЧЕНИЕ

Добавив ПРОВЕРИТЬ ОГРАНИЧЕНИЕ в столбец таблицы, вы можете ограничить диапазон значений, разрешенных для хранения в этом столбце.

Пример

Если вы хотите создать таблицу newbook_mast с ПЕРВИЧНЫМ КЛЮЧОМ в столбце book _id, уникальным ограничением для столбца isbn_no и a установите no_page таким образом, чтобы он содержал только значения больше нуля, можно использовать следующий оператор.

  СОЗДАТЬ ТАБЛИЦУ, ЕСЛИ НЕ СУЩЕСТВУЕТ newbook_mast (book_id varchar (15) NOT NULL UNIQUE, book_name varchar (50), isbn_no varchar (15) NOT NULL UNIQUE, cate_id varchar (8)  , aut_id varchar (8), pub_id varchar (8), dt_of_pub date, pub_lang varchar (15), no_page decimal (5,0) CHECK (no_page> 0), book_price decimal (8,2), PRIMARY KEY (book_id))  ;  

Здесь, в приведенном выше операторе MySQL, будет создана таблица ‘newbook_mast’ с ПЕРВИЧНЫМ КЛЮЧОМ в столбце ‘book _id’, уникальным ограничением в столбце ‘isbn_no’ и добавлением CHECK (no_page > 0) установит no_page так, что она будет содержать только значения больше нуля.

MySQL CREATE TABLE с CHECK CONSTRAINT с использованием оператора IN

MySQL CHECK CONSTRAINT может применяться к столбцу таблицы, чтобы установить предел для хранения значений в пределах диапазона вместе с оператором IN.

Если вы хотите создать таблицу newauthor с ПЕРВИЧНЫМ КЛЮЧОМ для комбинации двух столбцов (aut_id , home_city) и проверяя предельное значение для страны в столбце: ‘USA’, ‘UK’ и ‘India’, можно использовать следующий оператор.

  CREATE TABLE IF NOT  EXISTSnewauthor (aut_id varchar (8) NOT NULL, aut_name varchar (50) NOT NULL, country varchar (25) NOT NULL CHECK (country IN ('USA', 'UK', 'India')), home_city varchar (25) NOT  NULL, PRIMARY KEY (aut_id, home_city));  

Здесь, в приведенном выше операторе MySQL, будет создана таблица newauthor с PRIMARY KEY для комбинации двух столбцов (aut_id, home_city), а значение для страны столбца было ограничено с помощью оператора IN.

MySQL CREATE TABLE с CHECK CONSTRAINT и оператором LIKE

MySQL CHECK CONSTRAINT может применяться к столбцу таблицы, чтобы установить предел для хранения значений в пределах диапазона вместе с оператором LIKE.

Пример

Приведенный ниже оператор MySQL создаст таблицу ‘newbook_mast’ с ПЕРВИЧНЫМ КЛЮЧОМ в столбце ‘book_id’ и ограничение CHECK для ограничения значения, которое будет сохранено для столбца dt_of_pub вместе с оператором LIKE и другое ограничение CHECK для столбца no_page (без использования оператора LIKE).

CHECK (dt_of_pub LIKE ‘-/-/—-‘) проверяет, соответствует ли формат сохраняемой даты столбцу dt_of_pub ‘-/-/- — ‘.

Вот заявление.

  СОЗДАТЬ ТАБЛИЦУ, ЕСЛИ НЕ СУЩЕСТВУЕТ newbook_mast (book_idvarchar (15) NOT NULL UNIQUE, book_name varchar (50), isbn_no varchar (15) NOT NULL UNIQUE, cate_id varchar (8),  aut_id varchar (8), pub_id varchar (8), dt_of_pub date CHECK (dt_of_pub LIKE '-/-/----'), pub_lang varchar (15), no_page decimal (5,0) CHECK (no_page> 0  ), book_price decimal (8,2), PRIMARY KEY (book_id));  

MySQL СОЗДАТЬ ТАБЛИЦУ с оператором И и ИЛИ и ПРОВЕРИТЬ ОГРАНИЧЕНИЕ

MySQL CHECK CONSTRAINT может применяться к столбцу таблицы, чтобы установить предел для хранения значений в пределах диапазона, вместе с операторами AND и OR.

Пример

Приведенный ниже оператор MySQL создаст таблицу newpublisher с ПЕРВИЧНЫМ КЛЮЧОМ в столбце pub_id и ПРОВЕРИТЬ ограничение вместе с оператором И и ИЛИ для столбцов страны и pub_city.

CHECK ((country = ‘India’ AND pub_city = ‘Mumbai’) OR (country = ‘India’ AND pub_city = ‘New Delhi ‘)) проверяет, является ли (i) страна — ИНДИЯ, а pub_city — Мумбаи, ИЛИ (ii) страна — ИНДИЯ, а pub_city — Нью-Дели.

Руководство по MySQL говорит: «Предложение CHECK анализируется, но игнорируется всеми механизмами хранения».

Вот утверждение.

  СОЗДАТЬ ТАБЛИЦУ, ЕСЛИ НЕ СУЩЕСТВУЕТ newpublisher (pub_id varchar (8), pub_name varchar (50), pub_city varchar (25), country varchar (25), country_office varchar (25)  , no_of_branch int (3), estd date CHECK ((country = 'India' AND pub_city = 'Mumbai') OR (country = 'India' AND pub_city = 'New Delhi')), PRIMARY KEY (pub_id));  

MySQL UNIQUE CONSTRAINT

Ограничение UNIQUE создает такой индекс, что все значения в столбце индекса должны быть уникальными . Ошибка возникает, когда любое тело пытается добавить новую строку со значением ключа, которое уже существует в этой строке.

Пример

Приведенный ниже оператор MySQL создаст таблицу newauthor со столбцом aut_id, в которой будут храниться уникальные значения только после того, как используется UNIQUE (aut_id).

  СОЗДАТЬ ТАБЛИЦУ, ЕСЛИ НЕ СУЩЕСТВУЕТ newauthor (aut_id varchar (8) NOT NULL, aut_name varchar (50) NOT NULL, country varchar (25) NOT NULL, home_city varchar (25)  НЕ NULL, UNIQUE (aut_id));   

На рисунке ниже показана структура таблицы.

Пример MySQL UNIQUE CONSTRAINT проверяет уникальное значение

Приведенный ниже оператор MySQL создает таблица newauthor со столбцом aut_id, предназначенная для хранения только уникальных значений. Обратите внимание, что UNIQUE используется в определении столбца

  CREATE TABLE IF NOT EXISTS newauthor (aut_id varchar (8) NOT NULL UNIQUE, aut_name varchar (50) NOT NULL, country varchar (  25) NOT NULL, home_city varchar (25) NOT NULL);  

На следующем рисунке показана структура таблицы

MySQL СОЗДАТЬ ТАБЛИЦУ с ОГРАНИЧЕНИЕМ ПО УМОЛЧАНИЮ

При создании таблицы MySQL позволяет назначать столбцам ОГРАНИЧЕНИЯ ПО УМОЛЧАНИЮ. DEFAULT используется для установки значения по умолчанию для столбца и применяется с помощью DEFAULT default_value; где default_value — значение по умолчанию, установленное для столбца.

Пример

Приведенный ниже оператор MySQL создаст таблицу newpublisher с ПЕРВИЧНЫМ КЛЮЧОМ в столбце pub_id, ограничение CHECK с логическими операторами для столбцов country и pub-city и значением по умолчанию для столбцов pub_id, pub_name, pub_city и country.

Оператор MySQL также устанавливает пустое пространство по умолчанию для столбцов pub_id, pub_name, pub_city и ‘India’ в качестве значения по умолчанию для столбца страны.

Вот утверждение ниже.

  СОЗДАТЬ ТАБЛИЦУ, ЕСЛИ НЕ СУЩЕСТВУЕТ newpublisher (pub_id varchar (8) NOT NULL UNIQUE DEFAULT '', pub_name varchar (50) NOT NULL DEFAULT '', pub_city varchar (25) NOT  NULL DEFAULT '', country varchar (25) NOT NULL DEFAULT 'India', country_office varchar (25), no_of_branch int (3), estd dateCHECK ((country = 'India' AND pub_city = 'Mumbai') OR (country = '  Индия 'И pub_city =' Нью-Дели ')), ПЕРВИЧНЫЙ КЛЮЧ (pub_id));  

MySQL СОЗДАТЬ ТАБЛИЦУ с АВТОМАТИЧЕСКИМ УВЕЛИЧЕНИЕМ

MySQL позволяет вам установить AUTO_INCREMENT для столбца. Это приведет к автоматическому увеличению значения этого столбца на 1 при каждом добавлении новой записи.

Приведенный ниже оператор MySQL создаст таблицу newauthor с ПЕРВИЧНЫМ КЛЮЧОМ в столбце id и столбец id является автоматически увеличивающимся полем.

  СОЗДАТЬ ТАБЛИЦУ, ЕСЛИ НЕ СУЩЕСТВУЕТ newauthor (id int NOT NULL AUTO_INCREMENT, aut_id varchar (8), aut_name varchar (50),  country varchar (25), home_city varchar (25) NOT NULL, PRIMARY KEY (id));  

MySQL PRIMARY KEY CONSTRAINT

Обычно в таблице есть столбец или комбинация столбцов, которые содержат значения, используемые для однозначной идентификации каждой строки в таблице. Этот столбец или комбинация столбцов называется ПЕРВИЧНЫМ КЛЮЧОМ и может быть создан путем определения ОГРАНИЧЕНИЯ ПЕРВИЧНОГО КЛЮЧА. при создании таблицы. В таблице может быть только один ПЕРВИЧНЫЙ КЛЮЧ. Столбец PRIMARY KEY не может содержать значения NULL.

Пример

Приведенный ниже оператор MySQL создаст таблицу newauthor в который ПЕРВИЧНЫЙ КЛЮЧ установлен в столбец aut_id.

  СОЗДАТЬ ТАБЛИЦУ, ЕСЛИ НЕ СУЩЕСТВУЕТnewauthor (aut_id varchar (8) NOT NULL, aut_name varchar (50) NOT NULL, country varchar (25) NOT NULL, home_city varchar (25) NOT  NULL, PRIMARY KEY (aut_id));   

MySQL CREATE TABLE PRIMARY KEY CONSTRAINT для одного столбца

В этом разделе мы обсудили, как установить ОГРАНИЧЕНИЕ ПЕРВИЧНОГО КЛЮЧА в столбце таблицы.

Пример

Приведенный ниже оператор MySQL создаст таблицу newauthor ‘в котором PRIMARY KEY установлен в столбец aut_id. Обратите внимание, что здесь ключевое слово PRIMARY KEY используется в определении столбца.

  СОЗДАТЬ ТАБЛИЦУ, ЕСЛИ НЕ СУЩЕСТВУЕТ newauthor (aut_id varchar (8) NOT NULL PRIMARY KEY, aut_name varchar (50) NOT NULL, country varchar (25) NOT NULL, home_city varchar (  25) NOT NULL);  

MySQL CREATE TABLE PRIMARY KEY UNIQUE CONSTRAINT

В этом разделе мы имеем обсудили, как установить ограничения PRIMARY KEY, а также UNIQUE для столбцов таблицы при создании таблицы с помощью команды CREATE TABLE.

Приведенный ниже оператор MySQL создаст таблицу newauthor, в которой PRIMARY KEY установлен на столбец aut_id. а UNIQUE устанавливается в столбец home_city.

  СОЗДАТЬ ТАБЛИЦУ, ЕСЛИ НЕ СУЩЕСТВУЕТnewauthor (aut_id varchar (8) NOT NULL PRIMARY KEY, aut_name varchar (50) NOT NULL, country varchar (25) NOT NULL, home_city varchar (25  ) NOT NULL UNIQUE);   

MySQL CREATE TABLE PRIMARY KEY для нескольких столбцов

MySQL позволяет вам установить PRIMARY KEY для нескольких столбцов стол. Это позволяет вам работать с несколькими столбцами как с одной сущностью, установленной как ПЕРВИЧНЫЙ КЛЮЧ для таблицы.

Пример

Приведенный ниже оператор MySQL создаст таблицу ‘newauthor’, в которой PRIMARY KEY установлен с помощью комбинации Столбцы aut_id и home_city.

  СОЗДАТЬ ТАБЛИЦУ, ЕСЛИ НЕ СУЩЕСТВУЕТ newauthor (aut_id varchar (8) NOT NULL, aut_name varchar (50) NOT NULL, country varchar (25) NOT NULL,  home_city varchar (25) NOT NULL, ПЕРВИЧНЫЙ КЛЮЧ (aut_id, home_city));   

MySQL создает таблицу с FOREIGN KEY CONSTRAINT

При создании (или изменении) таблицы MySQL вы можете установить ОГРАНИЧЕНИЕ ИНОСТРАННОГО КЛЮЧА для столбца таблицы. Внешний ключ — это столбец или комбинация столбцов, которые можно использовать для установки связи между данными в двух таблицах. ПЕРВИЧНЫЙ КЛЮЧ таблицы связан с ИНОСТРАННЫМ КЛЮЧОМ другой таблицы для повышения целостности данных.

Синтаксис:

 FOREIGN KEY [список столбцов] ССЫЛКИ [таблица первичных ключей] ([список столбцов]); 

Аргументы

Имя Описание
список столбцов Список столбцов, для которых должен быть установлен FOREIGN KEY.
ССЫЛКИ Ключевое слово.
таблица первичных ключей Имя таблицы, которая содержит ПЕРВИЧНЫЙ КЛЮЧ.
список столбцов Список столбцов, для которых установлен ПЕРВИЧНЫЙ КЛЮЧ в таблице первичных ключей.

Пример

Если вы хотите сделать следующие задачи:

Будет создана новая таблица newbook_mast.

ПЕРВИЧНЫМ КЛЮЧОМ для этой таблицы newbook_mast является book_id.

ВНЕШНИЙ КЛЮЧ для таблицы newbook_mast — aut_id.

aut_id — это ПЕРВИЧНЫЙ КЛЮЧ для таблицы newauthor.

ИНОСТРАННЫЙ КЛЮЧ ‘aut_id’ для таблицы ‘newbook_mast’ указывает на ПЕРВИЧНЫЙ КЛЮЧ ‘aut_id’ таблицы ‘newauthor’.

Это означает ‘aut_id’s которые присутствуют в таблице newauthor, только эти авторы попадут в таблицу newbook_mast.

Ниже приводится инструкция MySQL для вышеуказанных задач.

  СОЗДАТЬ ТАБЛИЦУ, ЕСЛИ НЕ СУЩЕСТВУЕТ newbook_mast (book_id varchar (15) NOT NULL PRIMARY KEY, book_name varchar (50), isbn_no varchar (15) NOT NULL, cate_id varchar (8)  , aut_id varchar (8), pub_id varchar (8), dt_of_pub date, pub_lang varchar (15), no_page decimal (5,0), book_price decimal (8,2), FOREIGN KEY (aut_id) ССЫЛКИ newauthor (aut_id));   

MySQL CREATE TABLE с FOREIGN KEY CONSTRAINT для нескольких столбцов

MySQL позволяет назначать FOREIGN KEY CONSTRAINTS для нескольких столбцов стола. При этом более чем один столбец таблицы устанавливается с ОГРАНИЧЕНИЕМ ИНОСТРАННОГО КЛЮЧА, на которое ссылаются ПЕРВИЧНЫЕ КЛЮЧИ, принадлежащие разным таблицам.

Пример

Если вы хотите выполнить следующие задачи:

Будет создана новая таблица newpurchase.
ПЕРВИЧНЫЙ КЛЮЧ для этой таблицы ‘newpurchase’ — ‘invoice_no’.
Единственный ИНОСТРАННЫЙ КЛЮЧ для таблицы ‘newpurchase’ представляет собой комбинацию ‘ord_no’ и ‘book_id’.
Другой ИНОСТРАННЫЙ КЛЮЧ для таблицы newpurchase — это cate_id.
Комбинация ord_no и book_id является ПЕРВИЧНЫМ КЛЮЧОМ для таблицы neworder.
‘Cate_id’ является ПЕРВИЧНЫМ КЛЮЧОМ для таблицы ‘category’.
Комбинация FOREIGN KEY ‘ord_no’ и ‘book_id’ для таблицы ‘newpurchase’, которая указывает на ПЕРВИЧНЫЙ КЛЮЧ ‘ord_no’ и ‘book_id ‘комбинация таблицы’ neworder ‘.
Это означает отдельную комбинацию (‘ ord_no ‘и’ book_id ‘), которые присутствуют в таблице’ neworder ‘только те уникальные’ номер заказа ‘и’ идентификатор книги ‘комбинация появится в таблице’ newpurchase ‘.

Другой ИНОСТРАННЫЙ КЛЮЧ ‘cate_id’ для таблицы ‘newpurchase’, который указывает на ПЕРВИЧНЫЙ КЛЮЧ ‘cate_id’ таблицы ‘category’. Это означает, что ‘cate_id’, которые присутствуют в таблице ‘category’, только те ‘category’ войдут в таблицу ‘newpurchase’.

Ниже приводится инструкция MySQL для вышеуказанных задач.

  СОЗДАТЬ ТАБЛИЦУ, ЕСЛИ НЕ СУЩЕСТВУЕТ newpurchase (invoice_no varchar (12) NOT NULL UNIQUE PRIMARY KEY, invoice_dt date, ord_no varchar (25), ord_date date, receive_dt date, book_id varchar (  8), book_name varchar (50), pub_lang varchar (8), cate_id varchar (8), receive_qty int (5), purch_price decimal (12,2), total_cost decimal (12,2), INDEX (ord_no, book_id),  ИНОСТРАННЫЙ КЛЮЧ (ord_no, book_id) ССЫЛКИ neworder (ord_no, book_id), ИНДЕКС (cate_id), ИНОСТРАННЫЙ КЛЮЧ (cate_id) ССЫЛКИ категория (cate_id));  

MySQL CREATE TABLE с FOREIGN KEY CONSTRAINT для нескольких таблиц

MySQL позволяет назначать FOREIGN KEY CONSTRAINTS для нескольких таблиц. При этом более чем один столбец таблицы устанавливается с ОГРАНИЧЕНИЕМ ИНОСТРАННОГО КЛЮЧА, ссылающимся на ПЕРВИЧНЫЕ КЛЮЧИ, принадлежащие разным таблицам.

Пример

Если вы хотите выполнить следующие задачи:

Будет создана новая таблица newbook_mast.
ПЕРВИЧНЫМ КЛЮЧОМ для этой таблицы newbook_mast является book_id.
Один ВНЕШНИЙ КЛЮЧ для таблицы newbook_mast — aut_id.
Другой ВНЕШНИЙ КЛЮЧ для таблица newbook_mast — pub_id.
aut_id — это ПЕРВИЧНЫЙ КЛЮЧ для таблицы newauthor.
pub_id — это ПЕРВИЧНЫЙ КЛЮЧ для таблицы newpublisher.
ВНЕШНИЙ КЛЮЧ ‘aut_id’ для таблицы ‘newbook_mast’, который указывает на ПЕРВИЧНЫЙ КЛЮЧ ‘aut_id’ таблицы ‘newauthor’.
Это означает ‘aut_id’, которые присутствуют в в таблице ‘nuwauthor’ только эти авторы попадут в таблицу ‘newbook_mast’.
Другой ИНОСТРАННЫЙ КЛЮЧ ‘pub_id’ для таблицы ‘newbook_mast’, который указывает на ПЕРВИЧНЫЙ КЛЮЧ ‘pub_id’ таблицы ‘ новый издатель ».
Это означает, что «pub_id», который присутствует в таблице «newpublisher», только эти издатели перейдут в таблицу «newbook_mast».

Ниже приводится инструкция MySQL для вышеуказанных задач..

  СОЗДАТЬ ТАБЛИЦУ, ЕСЛИ НЕ СУЩЕСТВУЕТ newbook_mast (book_id varchar (15) NOT NULL PRIMARY KEY, book_name varchar (50), isbn_no varchar (15) NOT NULL, cate_id varchar (8)  , aut_id varchar (8), pub_id varchar (8), dt_of_pub date, pub_lang varchar (15), no_page decimal (5,0), book_price decimal (8,2), INDEX (aut_id), FOREIGN KEY (aut_id) ССЫЛКИ newauthor  (aut_id), INDEX (pub_id), FOREIGN KEY (pub_id) ССЫЛКИ newpublisher (pub_id));  

MySQL CREATE TABLE with CASCADE и RESTRICT

MySQL позволяет создавать таблицы с опциями CASCADE и RESTRICT.

Параметр CASCADE удаляет или обновляет строку из родительской таблицы (содержащую ПЕРВИЧНЫЕ КЛЮЧИ) и автоматически удаляет или обновляет совпадающие строки в дочерней таблице (содержащей ИНОСТРАННЫЕ КЛЮЧИ).

Параметр RESTRICT запрещает удаление (т. е. использование удаления) или изменение (т. е. использование обновления) строк из родительской таблицы.

Пример

Если вы хотите выполнить следующие задачи:

Будет создана новая таблица newpurchase.
ПЕРВИЧНЫЙ КЛЮЧ для этой таблицы ‘newpurchase’ — ‘invoice_no’.
Единственный ВНЕШНИЙ КЛЮЧ для таблицы ‘newpurchase’ представляет собой комбинацию ‘ord_no’ и ‘book_id’.
Другой ИНОСТРАННЫЙ КЛЮЧ для таблицы newpurchase — это cate_id.
Комбинация ord_no и book_id является ПЕРВИЧНЫМ КЛЮЧОМ для таблицы neworder.
cate_id является ПЕРВИЧНЫМ КЛЮЧОМ для таблицы ‘category’.
Комбинация FOREIGN KEY ‘ord_no’ и ‘book_id’ для таблицы ‘newpurchase’, которая указывает на комбинацию PRIMARY KEY ‘ord_no’ и ‘book_id’ таблица neworder. Это означает, что различные комбинации (‘ord_no’ и ‘book_id’), которые присутствуют в таблице ‘neworder’, только эти уникальные комбинации ‘номер заказа’ и ‘идентификатор книги’ войдут в таблицу ‘newpurchase’.
Другой ИНОСТРАННЫЙ КЛЮЧ ‘cate_id’ для таблицы ‘newpurchase’, который указывает на ПЕРВИЧНЫЙ КЛЮЧ ‘cate_id’ таблицы ‘category’. Это означает, что ‘cate_id’, которые присутствуют в таблице ‘category’, только те ‘category’ войдут в таблицу ‘newpurchase’.
ON UPDATE CASCADE гарантирует, что записи внутри дочерней таблицы newpurchase всегда указывают на ПЕРВИЧНЫЙ КЛЮЧ внутри родительской таблицы neworder.
Если какая-либо запись удаляется/обновляется из таблицы ‘neworder’, MySQL обрабатывает удаление/обновление записей из таблицы ‘newpurchase’.
ON DELETE RESTRICT предотвращает запись в родительской таблице ‘neworder ‘удаляется или изменяется, когда на него все еще ссылаются из дочерней таблицы’ newpurchase ‘.

Ниже приводится инструкция MySQL для вышеуказанных задач..

  СОЗДАТЬ ТАБЛИЦУ, ЕСЛИ НЕ СУЩЕСТВУЕТ newpurchase (invoice_no varchar (12) NOT NULL UNIQUE PRIMARY KEY, invoice_dt date, ord_no varchar (25), ord_date date, receive_dt date, book_id varchar (  8), book_name varchar (50), pub_lang varchar (8), cate_id varchar (8), receive_qty int (5), purch_price decimal (12,2), total_cost decimal (12,2), INDEX (ord_no, book_id),  ИНОСТРАННЫЙ КЛЮЧ (ord_no, book_id) ССЫЛКИ neworder (ord_no, book_id) НА КАСКАД ОБНОВЛЕНИЯ ПРИ УДАЛЕНИИ ОГРАНИЧЕНИЯ, ИНДЕКС (cate_id), ИНОСТРАННЫЙ КЛЮЧ (cate_id) ССЫЛКИ категория (cate_id))  

MySQL CREATE TABLE with SET NULL

MySQL позволяет вам создавать таблицу с опцией SET NULL. Это приведет к удалению или обновлению строки из родительской таблицы и установит для столбца или столбцов внешнего ключа в дочерней таблице значение NULL.

Вы можете использовать SET NULL для DELETE, а также UPDATE.

Если используется SET NULL, вы не должны устанавливать параметры NOT NULL для столбцов дочерней таблицы (содержащей ИНОСТРАННЫЕ КЛЮЧИ).

Пример

Если вы хотите выполнить следующие задачи:

Будет создана новая таблица newpurchase.
ПЕРВИЧНЫЙ КЛЮЧ для этой таблицы newpurchase — invoice_no.
Один ВНЕШНИЙ КЛЮЧ для таблицы newpurchase представляет собой комбинацию ord_no и book_id.
Другой ИНОСТРАННЫЙ КЛЮЧ для таблицы newpurchase — это cate_id.
Комбинация «ord_no» и «book_id» является ПЕРВИЧНЫМ КЛЮЧОМ для таблицы neworder.
«cate_id» — это ПЕРВИЧНЫЙ КЛЮЧ для таблицы «category».
ИНОСТРАННЫЙ КЛЮЧ Комбинация ‘ord_no’ и ‘book_id’ для таблицы ‘newpurchase’, которая указывает на комбинацию ПЕРВИЧНОГО КЛЮЧА ‘ord_no’ и ‘book_id’ таблицы ‘neworder’. Это означает, что различные комбинации (‘ord_no’ и ‘book_id’), которые присутствуют в таблице ‘neworder’, только эти уникальные комбинации ‘номер заказа’ и ‘идентификатор книги’ войдут в таблицу ‘newpurchase’.

Другой ИНОСТРАННЫЙ КЛЮЧ ‘cate_id’ для таблицы ‘newpurchase’, который указывает на ПЕРВИЧНЫЙ КЛЮЧ ‘cate_id’ таблицы ‘category’. Это означает, что ‘cate_id’, которые присутствуют в таблице ‘category’, только те ‘category’ войдут в таблицу ‘newpurchase’.
ON UPDATE SET NULL рекурсивно обновляет уже обновленную таблицу ‘newpurchase’ во время каскада действует как ОГРАНИЧЕНИЕ. Это предотвращает бесконечные циклы, возникающие в результате каскадных обновлений.

Вот инструкция MySQL ниже для вышеуказанных задач.

  СОЗДАТЬ ТАБЛИЦУ, ЕСЛИ НЕ СУЩЕСТВУЕТ newpurchase (invoice_no varchar (12) NOT NULL UNIQUE PRIMARY KEY, invoice_dt date, ord_no varchar (25), ord_date date, receive_dt date, book_id varchar (  8), book_name varchar (50), pub_lang varchar (8), cate_id varchar (8), receive_qty int (5), purch_price decimal (12,2), total_cost decimal (12,2), INDEX (ord_no, book_id),  ИНОСТРАННЫЙ КЛЮЧ (ord_no, book_id) ССЫЛКИ neworder (ord_no, book_id) ПРИ КАСКАДЕ ОБНОВЛЕНИЯ ПРИ УДАЛЕНИИ SET NULL, ИНДЕКС (cate_id), ИНОСТРАННЫЙ КЛЮЧ (cate_id) ССЫЛКИ категория (cate_id));  

MySQL CREATE TABLE with NO ACTION

Параметр NO ACTION в MySQL эквивалентен RESTRICT.

Пример

Если вы хотите выполнить следующие задачи:

Будет создана новая таблица newpurchase.
ПЕРВИЧНЫЙ КЛЮЧ для этой таблицы ‘newpurchase’ — ‘invoice_no’.
Единственный ВНЕШНИЙ КЛЮЧ для таблицы ‘newpurchase’ представляет собой комбинацию ‘ord_no’ и ‘book_id’.
Другой ИНОСТРАННЫЙ КЛЮЧ для таблицы newpurchase — это cate_id.
Комбинация ord_no и book_id является ПЕРВИЧНЫМ КЛЮЧОМ для таблицы neworder.
cate_id является ПЕРВИЧНЫМ КЛЮЧОМ для таблицы ‘category’.
Комбинация FOREIGN KEY ‘ord_no’ и ‘book_id’ для таблицы ‘newpurchase’, которая указывает на комбинацию PRIMARY KEY ‘ord_no’ и ‘book_id’ таблица neworder. Это означает, что различные комбинации (‘ord_no’ и ‘book_id’), которые присутствуют в таблице ‘neworder’, только эти уникальные комбинации ‘номер заказа’ и ‘идентификатор книги’ войдут в таблицу ‘newpurchase’.
Другой ИНОСТРАННЫЙ КЛЮЧ ‘cate_id’ для таблицы ‘newpurchase’, который указывает на ПЕРВИЧНЫЙ КЛЮЧ ‘cate_id’ таблицы ‘category’. Это означает, что ‘cate_id’, которые присутствуют в таблице ‘category’, только те ‘category’ войдут в таблицу ‘newpurchase’.
ON DELETE NO ACTION предотвращает удаление или изменение записи в родительском ‘neworder’, когда на нее по-прежнему ссылаются из дочерней таблицы ‘newpurchase’.

Ниже приводится инструкция MySQL для вышеуказанных задач.

  СОЗДАТЬ ТАБЛИЦУ, ЕСЛИ НЕ СУЩЕСТВУЕТ newpurchase (invoice_no varchar (12) NOT NULL UNIQUE PRIMARY  KEY, invoice_dt date, ord_no varchar (25), ord_date date, receive_dt date, book_id varchar (8), book_name varchar (50), pub_lang varchar (8), cate_id varchar (8), receive_qty int (5), purch_price decimal (  12,2), total_cost decimal (12,2), INDEX (ord_no, book_id), FOREIGN KEY (ord_no, book_id) ССЫЛКИ neworder (ord_no, book_id) ПРИ КАСКАДЕ ОБНОВЛЕНИЯ ПРИ УДАЛЕНИИ ДЕЙСТВИЙ, ИНДЕКС (cate_id), ИНОСТРАННЫЙ КЛЮЧ (  cate_id) категория ССЫЛКИ (cate_id));  

Оцените статью
nanomode.ru
Добавить комментарий