col_name [(length)]
reference_definition:
REFERENCES tbl_name [(index_col_name,...)]
[MATCH FULL | MATCH PARTIAL]
[ON DELETE reference_option]
[ON UPDATE reference_option]
reference_option:
RESTRICT | CASCADE | SET NULL | NO ACTION |
SET DEFAULT
table_options:
TYPE = {BDB | HEAP | ISAM | InnoDB | MERGE | MRG_MYISAM |
MYISAM }
Оператор
CREATE TABLE
создает таблицу с заданным именем в текущей базе
данных.
Для всех имен баз данных, таблиц, столбцов, индексов и псевдонимов в MySQL при-
няты одни и те же правила.
Следует отметить, что эти правила были изменены, начиная с версии MySQL 3.23.6,
когда было разрешено брать в одиночные скобки (') идентификаторы (имена баз данных,
таблиц и столбцов). Двойные скобки (") тоже допустимы - при работе в режиме ANSI
SQL.
Идентификатор
Макс. длина строки Допускаемые символы
База данных
64
Любой символ, допустимый в имени каталога, за
исключением (/) или (.)
Таблица
64
Любой символ, допустимый в имени файла, за
исключением (/) или (.)
Столбец
64
Все символы
Псевдоним
255
Все символы
Если нет активной текущей базы данных или указанная таблица уже существует, то
возникает ошибка выполнения команды.
В версии MySQL 3.22 и более поздних имя таблицы
может быть указано как
db_name.tbl_name
. Эта форма записи работает независимо от того, является ли ука-
занная база данных текущей.
В версии MySQL 3.23 при создании таблицы можно использовать ключевое слово
TEMPORARY
. Временная таблица автоматически удаляется по завершении соединения, а
ее имя действительно только в течение данного соединения. Это означает, что в двух
разных соединениях могут использоваться временные таблицы с одинаковыми именами без
конфликта друг с другом или с существующей таблицей с тем же именем (существующая
таблица скрыта, пока не удалена временная таблица). В версии MySQL 4.0.2 для создания
временных таблиц необходимо иметь привилегии
CREATE
TEMPORARY TABLES
.
В версии MySQL 3.23 и более поздних можно использовать ключевые слова
IF
NOT EXISTS
для того, чтобы не возникала ошибка, если указанная таблица уже суще-
ствует. Следует учитывать, что при этом не проверяется идентичность структур этих та-
блиц.
Каждая таблица
tbl_name
представлена определенными файлами в директории
базы данных. В случае таблиц типа
MyISAM
- это следующие файлы:
Файл
Назначение
tbl_name.frm
Файл определения таблицы
tbl_name.MYD
Файл данных
tbl_name.MYI
Файл индексов
64
Чтобы получить более полную информацию о свойствах различных типов столбцов,
см. документацию к СУБД.
Если не указывается ни
NULL
, ни
NOT NULL
, то столбец интерпретируется так,
как будто указано
NULL
.
Целочисленный столбец может иметь
дополнительный атрибут
AUTO_INCREMENT
. При записи величины
NULL
(рекомендуется) или
0
в столбец
AUTO_INCREMENT
данный столбец
устанавливается в значение
value+1
, где
value
представляет собой наибольшее для этого столбца значение в таблице на момент
записи. Последовательность
AUTO_INCREMENT
начинается с
1
. Если удалить строку,
содержащую максимальную величину для столбца
AUTO_INCREMENT
, то в таблицах
типа
ISAM
или
BDB
эта величина будет восстановлена, а в таблицах типа
MyISAM
или
InnoDB
- нет. Если удалить все строки в таблице командой
DELETE FROM
table_name
(без выражения
WHERE
) в режиме
AUTOCOMMIT
, то для таблиц всех ти-
пов последовательность начнется заново.
Достарыңызбен бөлісу: