2013-09-25 4 views
0

Я использую инструмент MySQL Workbench 6.0 для переноса данных из базы данных MS SQL Server 2000 в базу данных MySQL 5.6 и многие из конструкторы create table выдают ошибку «Значение по умолчанию N'no» не поддерживается »в столбцах, которые разрешают null, но определяют значение по умолчанию. Вот пример кода, в котором жалоба относится к определению определения столбца распределения.Получение значения по умолчанию N'no 'не поддерживается для VARCHAR (3) NULL DEFAULT' no '

Конструкция Таблица выглядит следующим образом:

CREATE TABLE IF NOT EXISTS `dbo`.`_tbl_access` (
`distribution` VARCHAR(3) NULL DEFAULT 'no', 
`email` VARCHAR(100) NULL) 

Идея заключается в том, что вы можете хранить NULL, но есть по умолчанию не будет «нет». Является ли это известной проблемой для разрешения NULL, но для сохранения значения «нет» по умолчанию?

ответ

0

Как указано в документации MySLQ 5,6, вы не можете использовать свое собственное значение по умолчанию на столбец, который может принимать значение NULL в качестве значения:

Если столбец может принимать значение NULL в качестве значения, столбец определяется с явным предложением DEFAULT NULL.

11.5. Data Type Default Values

Если вы хотите точно такое же поведение, вы можете использовать пользовательские триггеры. Вы также можете рассмотреть возможность перепроектирования базы данных, например. спросить себя, должна ли запись существовать в таблице «_tbl_access», если ответ для поля «распространение» не определен (NULL).