|
Программирование >> Создание клиентов mysql
ALTER TABLE address ADD INDEX (lastName) ADD PRIMARY KEY (столбец, ..,) С помощью этой спецификации лице добавляется первичный ключ (листинг 13.6). У таблицы может быть только один такой ключ, поэтому существующий ключ необходимо предварительно удалить. ALTER TABLE address ADD PRIMARY KEY(ID) ADD UNIQUE [имя] (столбец, ...) Эта спецификация налагает на заданные столбцы ограничение уникальности. Если в столбцах содержатся дублирующиеся значения, инструкция ALTER завершится неудачей. Воспользуйтесь флагом IGNORE, чтобы вызвать принудительное изменение. ALTER [COLUMN] столбец DROP DEFAULT С помощью этой спецификации из определения столбца удаляется описание значения по умолчанию (листинг 13.7). столбца будет выбрано новое стандартное значение на основании его типа и допустимости значений NULL. Если значения NULL разрешены, выбор будет сделан в их пользу. В противном случае будет выбрано значение 0 или пустая строка. ALTER TABLE address ALTER prefix DROP DEFAULT ALTER [COLUMN] столбец SET DEFAULT литерал Эта спецификация назначает столбцу значение по умолчанию (листинг 13.8). Подобное изменение не затрагивает существующие записи. ALTER TABLE address ALTER prefix SET DEFAULT Mr. Полный список инструкций 209 CHANGE [COLUMN] столбец определение С помощью этой спецификации меняется определение столбца: ег размер- ность и тип. Подобная возможность не предусмотрена в стандарте языка SQL. Другие СУБД тоже допускают модификацию определений столбцов, но программа MySQL является наиболее гибкой в этом плане. MySQL пытается привести существующие данные к новому типу. Если столбец проиндексирован, его размерность не может стать меньше, чем размерность индекса. Например, наличие индекса перв1х 16 символов столбца типа VARCHAR означает, что размерность столбца тоже должна составлять не менее 16 символов. В листинге 13.9 показано, как тип столбца меняется с VARCHAR Р2) шим. Обратите внимание на то, что имя столбца повторяется дважды. Это не ошибка. Первый раз идентифицируется существующий столбец, а второй раз дается его новое определение. ALTER TABLE address CHANGE prefix prefix ENUM(Mr.,Mrs.,Miss,Ms) DROP [COLUMN] столбец Эта спецификация предназначена для удаления столбца из таблицы и не является частью стандарта языка SQL (листинг 13.10). Индексы, охватывающие удаляемый столбец, автоматически перестраиваются. Если в индекс входил только один этот столбец, индекс удаляется. ALTER TABLE address DROP middleName DROP PRIMARY KEY Эта спецификация аналогична предыдущей, но удаляется не произвольный столбец, а лишьпервичный ключ. Если для таблицы не задан первичный ключ, удаляется первыйуникальный индекс. DROP INDEX индекс С помощью этой спецификации удаляется указанный индекс (листинг По- добная возможность не предусмотрена в стандарте. ALTER TABLE address DROP INDEX lastName MODIFY[COLUMN] определение Эта спецификация служит для изменения определения столбца, кроме его имени (листинг 13.12). Данная возможность появилась в MySQLпод влиянием СУБД Oracle. ALTER TABLE address MODIFY prefix ENUM (Mr. ,Mrs. ,Miss ,Ms ) ORDER BY столбец Данная спецификация предназначена для изменения физического порядка записей по значениям заданного столбца. В некоторых случаях это позволяет ускорить выполнение запросов к таблице. Обратите внимание на то, что переупорядочение записей происходит лишь один раз. Последующие операции вставки и удаления приведут к изменению порядка записей. RENAME [TO] имя Эта спецификация позволяет менять имя таблицы (листинг 13.13). Аналогичную функцию выполняет инструкция RENAME TABLE. ALTER TABLE address RENAME addr Опции В инструкции ALTER можно задавать те же самые табличные опции, что и в инструкции CREATE TABLE (см. ниже). Например, разрешается менять тип таблицы или максимальное число записей в ней (листинг 13.14). ALTER TABLE address TYPE=BDB ANALYZE TABLE Инструкция ANALYZE TABLE анализирует и запоминает распределение значений ключей указанной таблицы, что повышает эффективность операций объединения. Синтаксис инструкции таков: ANALYZE TABL , ИМЯ ...]
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |