Синтаксис команды 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);

 



Поделиться:


Последнее изменение этой страницы: 2017-01-25; просмотров: 79; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.142.97.219 (0.01 с.)