SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 25.08.2009 10:15:54

avtorpc
Участник
Зарегистрирован: 16.06.2009
Сообщений: 2

Длина поля типа VARCHAR

Можно ли у действующей базы (MySQL Для Joomla!) изменять длину поля типа VARCHAR, в данном поле уже содержаться данные. По прихоти разработчиков его длину ограничили 64 символами. Не хватает для записи длинных названий. Хочу увеличить, но не уверен, может это приведет к падению базы?

Неактивен

 

#2 25.08.2009 10:39:09

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Длина поля типа VARCHAR

Можно.

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

Неактивен

 

#3 25.08.2009 14:11:12

avtorpc
Участник
Зарегистрирован: 16.06.2009
Сообщений: 2

Re: Длина поля типа VARCHAR

Подскажите, как это сделать корректно? Просто зайти в макет таблицы и сменить количество знаков в описании поля? Что делать если это поле часть индекса? Как это можно определить?

Отредактированно avtorpc (25.08.2009 14:24:06)

Неактивен

 

#4 25.08.2009 14:36:29

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Длина поля типа VARCHAR

ALTER TABLE tablename MODIFY fieldname VARCHAR(128) NOT NULL;

Неактивен

 

#5 25.08.2009 14:47:06

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Длина поля типа VARCHAR

avtorpc написал:

Подскажите, как это сделать корректно? Просто зайти в макет таблицы и сменить количество знаков в описании поля?

alter table имя_таблицы modify имя_колонки тип_колонки;

avtorpc написал:

Что делать если это поле часть индекса?

В данном случае (увеличение длинны) это ни на что не повлияет.

Если при использовании операций CHANGE или MODIFY уменьшается длина данных для колонки, имеющей индекс, и получившаяся длина меньше, чем длина индекса, MySQL автоматически уменьшает его размер.

avtorpc написал:

Как это можно определить?

show create table имя_таблицы;

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson