2010-09-22 1 views
0

Я использовал Инструмент миграции MySQL для переноса базы данных SQL Server 2008 в MySQL. Тем не менее, он преобразовал все мои bit типов в tinyint. Моей модели данных это не нравится, потому что у меня есть куча тестов для выражения true/false, а не 0-255.Преобразование MySQL tinyint типов в бит

Есть ли способ рассказать Инструментарий для преобразования этих разных или некоторых SQL, которые я могу запустить в новой базе данных для преобразования?

ответ

1

В MySQL до 5.0.5 бит на самом деле не существует, поэтому Migration Toolkit, вероятно, еще не обновляется, но вы можете использовать TINYINT (1) вместо того, чтобы в соответствии с этой цитатой с сайта MySQL:

«Начиная с MySQL 5.0.3 для хранения значений битового поля доступен тип данных BIT (до 5.0.3 MySQL интерпретирует BIT как TINYINT (1).) В MySQL 5.0.3 BIT поддерживается только для MyISAM. MySQL 5.0.5 расширяет поддержку BIT для MEMORY, InnoDB, BDB и NDBCLUSTER. "

Для того чтобы преобразовать вы можете использовать ALTER TABLE:

ALTER TABLE MODIFY TinyInt (1);

Если вы хотите использовать новый тип BIT, вы можете добавить его туда, но, поскольку он несколько новый, я думаю, что мы продолжим иметь некоторые проблемы с типом BIT для, ну, бит.

Невозможно сделать это для всех столбцов, хотя я обычно использую sed или perl -pi для внесения изменений в мой .sql-файл перед импортом.

Надеюсь, что это поможет!

+0

MySQL версия 5.1.41, я предполагаю, что изменю файл .sql, спасибо! –