2009-11-16 2 views
3

Я уже сталкивался с функцией преобразования. Как я понимаю, основной синтаксис:Как преобразовать типы полей MySQL?

select convert(columnName, targetFieldType) as newColumnName from table; 

Выполнение этой команды не дает мне какие-либо ошибки, но когда я проверяю типы данных, что они не изменились. Даже когда я использую фиксацию; данные остаются неизменными. В частности, я пытаюсь преобразовать данные с длинным типом в varchar. Есть идеи?

ответ

4

Заданный SELECT запрос будет возвращает значение нового типа, но оно не меняет тип поля таблицы в вашей базе данных.

Если вы хотите, чтобы навсегда изменить таблицу на диске, используйте:

ALTER TABLE table CHANGE columnName newColumnName targetFieldType NOT NULL; 

Обратите внимание, что для больших таблиц, это может занять некоторое время, потому что MySQL переписывает всю таблицу.

Примечание: удалите квалификатор NOT NULL, если вы также хотите разрешить значения NULL в этом столбце.

Для получения дополнительной информации см. ALTER TABLE Syntax in MySQL Reference Manual.

1

Обратите внимание, что вы можете преобразовать что-либо типа символов легко с помощью CONCAT:

select concat(columnName,'') as newColumnName from table; 

Фактический синтаксис вы хотите для CONVERT выглядит следующим образом:

select convert(columnName, char) as newColumnName from table; 

Существует нет тип VARCHAR доступен CONVERT или CAST, но приведение к символу без указания длины поля должно быть результатом, который вы хотите.

 Смежные вопросы

  • Нет связанных вопросов^_^