Справочник по MySQL : SQL : Изменение свойств таблицы : Переименование таблицы (ALTER TABLE RENAME)
смотрим также
Материал из Справочник Web-языков
Версия от 15:23, 26 апреля 2011; Evgen (Обсуждение | вклад)
Изменение свойств таблицы производиться при помощи команды ALTER TABLE.
Синтаксис команды ALTER TABLE
ALTER [IGNORE] TABLE tbl_name alter_specification [, alter_specification ...]
Команда ALTER TABLE позволяет изменять внутреннюю структуру уже существующей таблицы.
- tbl_name
- - Задает имя таблицы, в которой будут производиться изменения.
- IGNORE
- - Если этот параметр не задан, то при обнаружении дублирующих значений в уникальных ключах в новой таблице производиться отмена всех изменений. В противном случае при обнаружении дублирующих значений в уникальных ключах первая запись с дублирующим ключем остается, а остальные удаляются.
- alter_specification
- - Задает непосредственно само действие, которое должно быть произведено с таблицей.
- Возможные синтаксисы:
ADD [COLUMN] create_definition [FIRST | AFTER column_name ]
ADD [COLUMN] (create_definition, create_definition,...)
ADD INDEX [index_name] (index_col_name,...)
ADD PRIMARY KEY (index_col_name,...)
ADD UNIQUE [index_name] (index_col_name,...)
ADD FULLTEXT [index_name] (index_col_name,...)
ADD [CONSTRAINT symbol] FOREIGN KEY index_name (index_col_name,...) [reference_definition]
ALTER [COLUMN] col_name {SET DEFAULT literal | DROP DEFAULT}
CHANGE [COLUMN] old_col_name create_definition [FIRST | AFTER column_name]
MODIFY [COLUMN] create_definition [FIRST | AFTER column_name]
DROP [COLUMN] col_name
DROP PRIMARY KEY
DROP INDEX index_name
DISABLE KEYS
ENABLE KEYS
RENAME [TO] new_tbl_name
ORDER BY col
table_options
- ADD [COLUMN] create_definition [FIRST | AFTER column_name ]
- Используется для добавления нового поля в таблицу. При этом можно четко указать позиционирование нового поля.
- COLUMN
- - Необязательный параметр, который может быть опущен.
- create_definition
- - Определение имени и свойств нового столбца. Синтаксис идентичен определению столбца при создании таблицы (CREATE TABLE).
- FIRST
- - Указывает, что новое поле необходимо добавить в самое начало списка полей таблицы (по умолчанию новое поле добавляется в конец списка).
- AFTER column_name
- - Задает имя поля в таблице, после которого будет добавлено новое поле.
- Допустим, у нас есть таблица users со следующими полями: name, age
- Добавим новое поле country в конец списка:
ALTER TABLE `users` ADD `country` VARCHAR(64) NOT NULL
- Список полей таблицы users:
SHOW COLUMNS FROM `users`;
+---------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +---------+-------------+------+-----+---------+-------+ | name | varchar(50) | YES | | NULL | | | age | int(3) | YES | | NULL | | | country | varchar(64) | NO | | | | +---------+-------------+------+-----+---------+-------+ 3 rows in set (0.03 sec)
- Добавим новое поле id в начало списка:
ALTER TABLE `users` ADD `id` INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY FIRST
- Список полей таблицы users:
SHOW COLUMNS FROM `users`;
+---------+-------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +---------+-------------+------+-----+---------+----------------+ | id | int(11) | NO | PRI | NULL | auto_increment | | name | varchar(50) | YES | | NULL | | | age | int(3) | YES | | NULL | | | country | varchar(64) | NO | | | | +---------+-------------+------+-----+---------+----------------+ 4 rows in set (0.00 sec)
- Добавим новое поле city перед полем country (т.е. после поля age):
ALTER TABLE `users` ADD `city` VARCHAR(64) AFTER `age`
- Список полей таблицы users:
SHOW COLUMNS FROM `users`;
+---------+-------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +---------+-------------+------+-----+---------+----------------+ | id | int(11) | NO | PRI | NULL | auto_increment | | name | varchar(50) | YES | | NULL | | | age | int(3) | YES | | NULL | | | city | varchar(64) | YES | | NULL | | | country | varchar(64) | NO | | | | +---------+-------------+------+-----+---------+----------------+ 5 rows in set (0.00 sec)
- ADD [COLUMN] (create_definition, create_definition,...)
- - Добавляет одно поле или группу полей в таблицу.
- COLUMN
- - Необязательный параметр, который может быть опущен.
- create_definition
- - Определение имени и свойств нового столбца. Синтаксис идентичен определению столбца при создании таблицы (CREATE TABLE).
- Допустим, у нас есть таблица users со следующими полями:
SHOW COLUMNS FROM `users`;
+-------+-------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------+-------------+------+-----+---------+----------------+ | id | int(11) | NO | PRI | NULL | auto_increment | | name | varchar(50) | YES | | NULL | | | age | int(3) | YES | | NULL | | +-------+-------------+------+-----+---------+----------------+ 3 rows in set (0.00 sec)
- Добавим новые поля city и country:
ALTER TABLE `users` ADD ( `city` VARCHAR(64) NOT NULL, `country` VARCHAR(64) NOT NULL )
- Список полей таблицы users:
SHOW COLUMNS FROM `users`;
+---------+-------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +---------+-------------+------+-----+---------+----------------+ | id | int(11) | NO | PRI | NULL | auto_increment | | name | varchar(50) | YES | | NULL | | | age | int(3) | YES | | NULL | | | city | varchar(64) | NO | | | | | country | varchar(64) | NO | | | | +---------+-------------+------+-----+---------+----------------+ 5 rows in set (0.00 sec)
- ALTER TABLE table_name_old RENAME table_name_new
- table_name_old - старое имя таблицы, которое нам нужно переименовать;
- table_name_new - новое имя таблицы.
Допустим, нам нужно переименовать таблицу search в search_en:
$sql="ALTER TABLE search RENAME search_en"; mysql_query($sql);