Алексей Б.
186 сообщений
#17 лет назад
Вопрос профессионалу покажеться глупым, но ни в какой литературе ответа не нашёл! И в своей практике с такой проблемой не сталкивался!
Используеться MySQL - база данных, в базе существет таблица с данными.
Требуется изменить тип столбца в таблице:
сейчас - varchar(20)
надо - varchar(50) либо text
Но данные не должны быть потерянны!
ПОДСКАЖИТЕ пожалуйста как это сделать? И возможно ли вообще это сделать?
Илья А.
77 сообщений
#17 лет назад
$sql = 'ALTER TABLE `таблица` CHANGE `имя` `имя` VARCHAR( 50 ) ';
Алексей Б.
186 сообщений
#17 лет назад
Спасибо ArtKiev Только вот хотелось бы знать наверняка:
Данные из таблицы и столбца не потеряються?
Алексей Б.
897 сообщений
#17 лет назад
Потеряются если нужно будет сделать varchar(10)
а вообсче-то, есть такой метод, "тык" называется.
копируешь таблицу на всякий случай, и эксперементируешь пока не надоест
Константин Т.
589 сообщений
#17 лет назад
Есть такой метод. Надо изменить структуру таблицы А.

1) создаём новую пустую таблицу Б с изменённой структурой,
2) копируем в неё данные из таблицы A
3) переименовываем А в С
4) переименовывыаем Б в А

проверяем, удаляем С.
Вадим Т.
3240 сообщений
#17 лет назад
При простом увеличении длины поля данные не теряются
Гость
156 сообщений
#17 лет назад
spymen,
Если не знаете sql, поставте себе phpMyAdmin. Там сделать подобные вещи, это пару кликов мышью
Алексей Б.
186 сообщений
#17 лет назад
ВСЕМ ОГРОМНОЕ СПАСИБО!!!
отдельное спасибо - AlekseySribnyj - дельный совет, только mySQL я знаю. И мне без phpMyAdmin надо.
Илья А.
77 сообщений
#17 лет назад
spymen, то, что я написал - пробовали? Инфо не теряется если увеличить количество символом!