我使用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,但存储值为“不”。默认?
答案 0 :(得分:0)
如MySLQ 5.6文档中所述,您不能在可以将NULL作为值的列上使用您自己的默认值:
如果列可以将NULL作为值,则使用显式DEFAULT NULL子句定义该列。
11.5. Data Type Default Values
如果您想要完全相同的行为,可以使用自定义触发器。您也可以考虑重新设计数据库,例如如果“分配”字段的答案未定义(NULL),请问自己“_tbl_access”表中是否应该存在记录。