VARCHAR不支持获取默认值N'no'(3)NULL DEFAULT'no'

时间:2013-09-25 17:25:45

标签: mysql sql-server-2000 data-migration

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

Table构造如下所示:

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

这个想法是你可以存储NULL,但是默认值是“不”#39;。这是一个已知的问题,允许NULL,但存储值为“不”。默认?

1 个答案:

答案 0 :(得分:0)

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

  

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

11.5. Data Type Default Values

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