Чтение онлайн

на главную - закладки

Жанры

MySQL 5.0. Библиотека программиста

Гольцман Виктор

Шрифт:

При добавлении в таблицу внешнего ключа мы указываем имя таблицы, в которую нужно добавить ключ, имена столбцов, которые будут образовывать внешний ключ (эти столбцы должны уже существовать в таблице), а также имя родительской таблицы (на которую будет ссылаться данная таблица) и имена столбцов, образующих первичный ключ в родительской таблице. В случае необходимости можно также задать имя создаваемого внешнего ключа, имя индекса, автоматически добавляемого для столбцов внешнего ключа, и правила поддержания целостности связи при удалении и изменении строк родительской таблицы. Например, если бы внешний ключ не был определен при создании

таблицы Orders (Заказы), мы могли бы добавить его с помощью команды

ALTER TABLE Orders

ADD FOREIGN KEY (customer_id) REFERENCES Customers (id)

ON DELETE RESTRICT ON UPDATE CASCADE);

Более подробно о внешних ключах говорилось в пункте «Ключевые столбцы и индексы». • Добавить в таблицу обычный индекс вы можете с помощью команды

ALTER TABLE <Имя таблицы> ADD INDEX [<Имя индекса>] (<Список столбцов>);

Добавить уникальный индекс – с помощью команды

ALTER TABLE <Имя таблицы>

ADD [CONSTRAINT <Имя ограничения>]

UNIQUE (<Список столбцов>);

Добавить полнотекстовый индекс – с помощью команды ALTER TABLE <Имя таблицы>

ALTER TABLE <Имя таблицы> ADD FULLTEXT [<Имя индекса>] (<Список столбцов>);

При добавлении в таблицу индекса мы указываем имя таблицы, в которую нужно добавить индекс, и имена столбцов, включенных в индекс. В случае необходимости можно также задать имя индекса. Более подробно об индексах было сказано в пункте «Ключевые столбцы и индексы». Например, добавить индекс для столбца store (склад) таблицы Products (Товары) можно с помощью команды

ALTER TABLE Products ADD INDEX (store);

• Изменить столбец таблицы вы можете с помощью следующих команд: – Чтобы полностью изменить описание столбца, выполните команду

ALTER TABLE <Имя таблицы>

CHANGE <Прежнее имя столбца >

<Новое имя столбца>

<Новый тип столбца> [<Свойства столбца>]

[FIRST или AFTER <Имя предшествующего столбца>];

...

Внимание!

Изменять тип столбца, который уже содержит какие-либо значения, необходимо с осторожностью, так как при этом возможно внесение коррективов в значения. Например, если тип данных с плавающей точкой меняется на целочисленный, числовые значения будут округлены.

В этой команде мы указываем имя таблицы, текущее имя столбца, новое имя столбца (которое может совпадать с текущим), новый тип столбца (который также может совпадать с текущим типом), а также, при необходимости, свойства столбца (старые свойства при выполнении команды CHANGE удаляются). Кроме того, можно определить место столбца среди остальных столбцов таблицы: изменяемый столбец может стать первым (FIRST) или следовать после указанного предшествующего столбца (AFTER).

Например,

чтобы переименовать столбец store (склад) таблицы Products (Товары) в warehouse (склад) и изменить его тип на CHAR(100), выполните команду

ALTER TABLE Products CHANGE store warehouse CHAR(100);

Чтобы присвоить столбцу свойство AUTO_INCREMENT, необходимо либо одновременно с этим, либо заранее создать индекс для этого столбца. – Чтобы изменить описание столбца без переименования, выполните команду

ALTER TABLE <Имя таблицы>

MODIFY <Имя столбца>

<Новый тип столбца> [<Свойства столбца>]

[FIRST или AFTER <Имя предшествующего столбца>];

Данная команда полностью аналогична предыдущей, за исключением возможности переименования столбца. – Чтобы установить значение по умолчанию для столбца, выполните команду

ALTER TABLE <Имя таблицы>

ALTER <Имя столбца>

SET DEFAULT <Значение по умолчанию>;

Например, чтобы установить для столбца warehouse таблицы Products значение по умолчанию Склад № 1, выполните команду

ALTER TABLE Products ALTER warehouse SET DEFAULT \'Склад № 1\

Чтобы удалить значение по умолчанию, выполните команду

ALTER TABLE <Имя таблицы>

ALTER <Имя столбца> DROP DEFAULT;

Например, удалить значение по умолчанию, установленное для столбца warehouse, можно с помощью команды

ALTER TABLE Products ALTER warehouse DROP DEFAULT;

• Удалить столбец таблицы вы можете с помощью команды

ALTER TABLE <Имя таблицы> DROP <Имя столбца>;

При удалении столбца он удаляется также из всех индексов, в которые он был включен (в отличие от первичного и внешнего ключа, которые требуется удалить прежде, чем удалять входящие в них столбцы). Если при этом в индексе не остается столбцов, то индекс также автоматически удаляется. Например, для удаления столбца warehouse (склад) из таблицы Products (Товары) выполните команду

ALTER TABLE Products DROP warehouse;

• Удалить первичный ключ вы можете с помощью команды

ALTER TABLE <Имя таблицы> DROP PRIMARY KEY;

Например, удалить первичный ключ из таблицы Orders (Заказы) можно с помощью команды

ALTER TABLE Orders DROP PRIMARY KEY;

• Удалить внешний ключ вы можете с помощью команды

ALTER TABLE <Имя таблицы> DROP FOREIGN KEY <Имя внешнего ключа>;

В этой команде необходимо указать имя внешнего ключа. Если вы не задали имя внешнего ключа при его создании, то имя было присвоено автоматически и узнать его можно с помощью команды SHOW CREATE TABLE (см. подраздел «Другие команды для работы с таблицами»). Например, удалить внешний ключ из таблицы Orders можно с помощью команды

Поделиться:
Популярные книги

Эпоха Опустошителя. Том I

Павлов Вел
1. Вечное Ристалище
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Эпоха Опустошителя. Том I

Проблема майора Багирова

Майер Кристина
1. Спецназ
Любовные романы:
современные любовные романы
6.60
рейтинг книги
Проблема майора Багирова

Законы Рода. Том 13

Андрей Мельник
13. Граф Берестьев
Фантастика:
аниме
фэнтези
5.00
рейтинг книги
Законы Рода. Том 13

Газлайтер. Том 15

Володин Григорий Григорьевич
15. История Телепата
Фантастика:
боевая фантастика
попаданцы
5.00
рейтинг книги
Газлайтер. Том 15

О, Путник!

Арбеков Александр Анатольевич
1. Квинтет. Миры
Фантастика:
социально-философская фантастика
5.00
рейтинг книги
О, Путник!

Прометей: каменный век

Рави Ивар
1. Прометей
Фантастика:
альтернативная история
6.82
рейтинг книги
Прометей: каменный век

Её (мой) ребенок

Рам Янка
Любовные романы:
современные любовные романы
6.91
рейтинг книги
Её (мой) ребенок

Идеальный мир для Лекаря 8

Сапфир Олег
8. Лекарь
Фантастика:
юмористическое фэнтези
аниме
7.00
рейтинг книги
Идеальный мир для Лекаря 8

Прометей: каменный век II

Рави Ивар
2. Прометей
Фантастика:
альтернативная история
7.40
рейтинг книги
Прометей: каменный век II

Цвет сверхдержавы - красный. Трилогия

Симонов Сергей
Цвет сверхдержавы - красный
Фантастика:
попаданцы
альтернативная история
8.06
рейтинг книги
Цвет сверхдержавы - красный. Трилогия

Болтливый мертвец

Фрай Макс
7. Лабиринты Ехо
Фантастика:
фэнтези
9.41
рейтинг книги
Болтливый мертвец

На границе империй. Том 9. Часть 2

INDIGO
15. Фортуна дама переменчивая
Фантастика:
космическая фантастика
попаданцы
5.00
рейтинг книги
На границе империй. Том 9. Часть 2

Истребители. Трилогия

Поселягин Владимир Геннадьевич
Фантастика:
альтернативная история
7.30
рейтинг книги
Истребители. Трилогия

Лишняя дочь

Nata Zzika
Любовные романы:
любовно-фантастические романы
8.22
рейтинг книги
Лишняя дочь