Читайте также:
|
|
Прежде чем заполнить таблицу person данными, полезно обсудить про_ цесс формирования значений числовых первичных ключей. Кроме выбора числа «от фонаря» есть два варианта:
• Найти в таблице самое большое на данный момент значение пер_ вичного ключа и прибавить 1.
• Позволить серверу БД предоставить значение.
Хотя первый вариант и кажется допустимым, он становится проблема_ тичным в многопользовательской среде, поскольку два пользователя могут одновременно работать с таблицей и сгенерировать одно и то же значение первичного ключа. Напротив, все серверы БД, присутствую_ щие сегодня на рынке, обеспечивают более надежный, более устойчи_
Заполнение и изменение таблиц | |
вый к ошибкам метод формирования числовых ключей. Иногда, напри_ мер в Oracle Database, используется отдельный объект схемы (называе_ мый последовательностью (sequence)). Однако в случае с MySQL надо просто включить для столбца первичного ключа свойство auto_incre_ ment (автоприращение). Обычно это делается при создании таблицы, номы занимаемся этим сейчас, чтобы изучить еще одно SQL_выражение управления схемой, которое меняет описание существующей таблицы:
ALTER TABLE person MODIFY person_id SMALLINT UNSIGNED AUTO_INCREMENT;
Это выражение, по существу, переопределяет столбец person_id табли_ цы person. Теперь команда describe для этой таблицы отобразит атри_ бут автоприращения в столбце Extra для person_id:
mysql> DESC person;
+____________+______________________+______+_____+_________+________________+ | Field | Type | Null | Key | Default | Extra | +____________+______________________+______+_____+_________+________________+
| person_id | | smallint(5) unsigned | | | PRI | NULL | | auto_increment | | |||
|. | | | | | | | | | | | | |
|. | | | | | | | | | | | | |
|. | | | | | | | | | | | | |
При вводе данных в таблицу person просто задайте значение null для столбца person_id, и MySQL заполнит столбец следующим доступным числом (для столбцов с автоприращением MySQL по умолчанию начи_ нает отсчет с 1).
Дата добавления: 2015-08-17; просмотров: 52 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Что такое Null? | | | Выражение insert |