|
@@ -681,7 +681,7 @@ CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name [(create_definition,...)]
|
|
|
|
|
|
|
|
```
|
|
```
|
|
|
col_name col_type [NOT NULL | NULL] [DEFAULT default_value] [AUTO_INCREMENT]
|
|
col_name col_type [NOT NULL | NULL] [DEFAULT default_value] [AUTO_INCREMENT]
|
|
|
- [PRIMARY KEY]
|
|
|
|
|
|
|
+ [PRIMARY KEY] [CHECK]
|
|
|
```
|
|
```
|
|
|
|
|
|
|
|
* `col_name` - название;
|
|
* `col_name` - название;
|
|
@@ -712,6 +712,25 @@ CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name [(create_definition,...)]
|
|
|
|
|
|
|
|
* `PRIMARY KEY` - представляет собой уникальный ключ KEY (KEY является синонимом для INDEX). Столбец с данным ключом должен быть определен как `NOT NULL`. В MySQL этот ключ называется PRIMARY (первичный). Таблица может иметь только один первичный ключ PRIMARY KEY (То есть если мы хотим создать составной первичный ключ, то надо создавать его отдельной сущностью).
|
|
* `PRIMARY KEY` - представляет собой уникальный ключ KEY (KEY является синонимом для INDEX). Столбец с данным ключом должен быть определен как `NOT NULL`. В MySQL этот ключ называется PRIMARY (первичный). Таблица может иметь только один первичный ключ PRIMARY KEY (То есть если мы хотим создать составной первичный ключ, то надо создавать его отдельной сущностью).
|
|
|
|
|
|
|
|
|
|
+ * `CHECK` - ограничение, которое проверяет, что каждое значение данных, вставляемое в столбец, удовлетворяет требованиям, указанным в ограничении. Ограничение CHECK определяет выражение, которое должно принимать значение `TRUE` или `UNKNOWN` (для NULL-значений) для значения добавляемого в столбец. Если выражение равно `FALSE`, вставка или обновление завершается неудачно, и MySQL сообщает о нарушении ограничения.
|
|
|
|
|
+
|
|
|
|
|
+ Ограничение `CHECK` может задаваться в определении столбца или после определений столбцов. В любом случае выражение ограничения должно придерживаться следующих правил:
|
|
|
|
|
+
|
|
|
|
|
+ - Выражение не может ссылаться на столбец, определенный с AUTO_INCREMENT, или на столбец в другой таблице.
|
|
|
|
|
+
|
|
|
|
|
+ - Выражение не может включать хранимые функции, загружаемые функции, процедурные или функциональные параметры, переменные или подзапросы. Однако выражение может включать литералы, операторы или детерминированные встроенные функции.
|
|
|
|
|
+
|
|
|
|
|
+ - Для создания ограничения CHECK в определении столбца вам необходимо только указать ключевое слово CHECK с последующим выражением. Например, следующий оператор CREATE TABLE определяет ограничение CHECK на столбце wingspan:
|
|
|
|
|
+
|
|
|
|
|
+ ```sql
|
|
|
|
|
+ CREATE TABLE airplanes (
|
|
|
|
|
+ plane_id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
|
|
|
|
+ plane VARCHAR(50) NOT NULL,
|
|
|
|
|
+ wingspan DECIMAL(5,2) NOT NULL
|
|
|
|
|
+ CHECK (wingspan BETWEEN 10 AND 400),
|
|
|
|
|
+ );
|
|
|
|
|
+ ```
|
|
|
|
|
+
|
|
|
например:
|
|
например:
|
|
|
|
|
|
|
|
```sql
|
|
```sql
|