Справочник по MySQL : SQL : Изменение свойств таблицы : Переименование таблицы (ALTER TABLE RENAME)

смотрим также

Материал из Справочник Web-языков

Перейти к: навигация, поиск


Изменение свойств таблицы производиться при помощи команды 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);
Добавить страницу в закладки:
РАЗРЕШАЕТСЯ перепечатывать и копировать информацию ТОЛЬКО ПРИ РАЗМЕЩЕНИИ ссылки на оригинал!
(<A href="https://www.spravkaweb.ru/">Справочник Web-языков</A>)
другие проекты
Rambler\'s Top100 Индекс цитирования