Алексей Б.
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, то, что я написал - пробовали? Инфо не теряется если увеличить количество символом!