0

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

Table 构造如下所示:

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

这个想法是您可以存储 NULL,但默认设置为“否”。这是允许 NULL 的已知问题,但默认存储值“no”吗?

4

1 回答 1

0

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

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

11.5。数据类型默认值

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

于 2013-10-28T08:52:14.517 回答