文档解释
Error number: MY-010478; Symbol: ER_NDB_COLUMN_DEFAULTS_DIFFER; SQLSTATE: HY000
Message: NDB Internal error: Default values differ for column %u, ndb_default: %d
Error number: MY-010478; Symbol: ER_NDB_COLUMN_DEFAULTS_DIFFER; SQLSTATE: HY000
错误说明:
这是MySQL服务器的一个表定义错误。它的ER_NDB_COLUMN_DEFAULTS_DIFFER SQLSTATE错误(HY000)指示与NDB存储引擎绑定的表中的列具有不同的默认值。列的默认值可以为空、数字或字符串,但在NDB存储引擎中,每列都只能有一个默认值。
常见案例
这种错误通常发生在对NDB存储引擎创建一个表时,使用不兼容的假定值。这些假设可以是明确表示值,例如NULL,也可以是表达式,如NOW()。如果这两个表达式包含不同的默认值,则会出现此错误。
解决方法:
第一步是确认列的定义,这些列的默认值是什么,然后确定NDB存储引擎支持这些值。在这种情况下,可以使用以下语句查看表定义:
DESCRIBE `
ALTER TABLE `
下一步是重新定义表,包括一个兼容NDB存储引擎的默认值。可以使用以下语句来重新定义表:
UPDATE `
接下来,将确保NDB存储引擎中的新定义应用于表中的所有行:
DROP TABLE `
最后,删掉以前操作的表副本副本: