Mysql 获取默认值N';否';不支持VARCHAR(3)空默认值';否';

Mysql 获取默认值N';否';不支持VARCHAR(3)空默认值';否';,mysql,sql-server-2000,data-migration,Mysql,Sql Server 2000,Data Migration,我正在使用MySQL Workbench 6.0工具将数据从MS SQL Server 2000数据库迁移到MySQL 5.6数据库,许多create table构造在允许null但定义默认值的列上给出错误“默认值N'no'不受支持”。下面是一些示例代码,其中投诉是关于分发列定义的 表构造如下所示: CREATE TABLE IF NOT EXISTS `dbo`.`_tbl_access` ( `distribution` VARCHAR(3) NULL DEFAULT 'no', `emai

我正在使用MySQL Workbench 6.0工具将数据从MS SQL Server 2000数据库迁移到MySQL 5.6数据库,许多create table构造在允许null但定义默认值的列上给出错误“默认值N'no'不受支持”。下面是一些示例代码,其中投诉是关于分发列定义的

表构造如下所示:

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

其思想是可以存储NULL,但默认值为“no”。允许空值,但将“否”值存储为默认值,这是一个已知问题吗?

正如MySLQ 5.6文档中所述,您不能在可以将空值作为值的列上使用自己的默认值:

如果该列可以将NULL作为值,则该列将使用显式默认NULL子句定义

如果想要完全相同的行为,可以使用自定义触发器。您也可以考虑重新设计数据库,例如,如果“分发”字段的答案是未定义的(null),请询问自己是否在“TyBLyAccess”表中存在一个记录。