Mysql
 sql >> база данни >  >> RDS >> Mysql

Какво е името на ограничението по подразбиране в MySQL?

Проблем:

Искате да знаете имената по подразбиране на ограниченията в таблица в MySQL.

Пример:

В нашата база данни създаваме две таблици, country и student , със следните ограничения:PRIMARY KEY constraint (идентификаторът на колоната в таблиците country и student ), FOREIGN KEY (колоната country_id в таблицата student ), DEFAULT (името на колоната в таблицата student ), UNIQUE (колоната name в таблицата country и колоната personal_number в таблицата student ) и CHECK (колоната age в таблицата student ).

Решение:

CREATE TABLE country (
id int NOT NULL primary key,
name varchar(100) UNIQUE
);

CREATE TABLE student (
id int NOT NULL primary key,
name varchar(100) NOT NULL DEFAULT 'unknown',
personal_number varchar(100) UNIQUE,
age int CHECK(age>15),
country_id int,
FOREIGN KEY(country_id) REFERENCES country(id)
);

Нека покажем как MySQL наименува ограниченията на тези таблици по подразбиране. Използвайте тази заявка, за да ги видите:

SELECT TABLE_NAME, CONSTRAINT_TYPE, CONSTRAINT_NAME
FROM information_schema.table_constraints
WHERE table_name='country' OR table_name='student';

Ето резултата:

TABLE_NAME CONSTRAINT_TYPE CONSTRAINT_NAME
държава ПЪРВИЧЕН КЛЮЧ ОСНОВНО
държава УНИКАЛНО име
ученик ПЪРВИЧЕН КЛЮЧ ОСНОВНО
ученик УНИКАЛНО личен_номер
ученик ВЪНШЕН КЛЮЧ student_ibfk_1
ученик ПРОВЕРКА student_chk_1

Дискусия:

Когато създаваме нашите таблици, ние задаваме ограничения за някои колони. Въпреки това, ние не уточняваме имената за тези ограничения, така че те са именувани по подразбиране в MySQL. В MySQL типовете ограничения по подразбиране са PRIMARY KEY constraint , FOREIGN KEY , UNIQUE и CHECK . Как се генерират имената по подразбиране за ограничения?

Ограничението PRIMARY KEY constraint се нарича просто PRIMARY , защото винаги има един първичен ключ в таблица. Има две ограничения, наречени PRIMARY в резултата по-горе, но таблиците, към които принадлежат, са различни.

За FOREIGN KEY , името следва конвенцията:името на таблицата, долна черта (‘_ “), „ibfk “, друго долно подчертаване („_ “) и число. За нашия пример това е student_ibfk_1 в таблицата student .

Името по подразбиране за CHECK ограничението е подобно на това на външния ключ. Започва с името на таблицата, долна черта (‘_ ’), „chk “, друго долно подчертаване („_ “) и число. За нашия пример това е student_chk_1 в таблицата student .

Името по подразбиране на UNIQUE constraint е името на самата колона. За нашия пример това е personal_number в таблицата student . Когато има няколко колони с UNIQUE ограничение, той използва името на първата колона в дефиницията на ограничението.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Възстановете базата данни на mysql от .frm файлове

  2. Производителност на MySQL:Идентифициране на дълги заявки

  3. count(*) и count(column_name), каква е разликата?

  4. Свързване с MySQL бази данни

  5. Как да създадете база данни от скрипт в MySQL