MySQL Error number: MY-010478; Symbol: ER_NDB_COLUMN_DEFAULTS_DIFFER; SQLSTATE: HY000

文档解释

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 `

`;

下一步是重新定义表,包括一个兼容NDB存储引擎的默认值。可以使用以下语句来重新定义表:

ALTER TABLE `

` MODIFY COLUMN “ DEFAULT ;

接下来,将确保NDB存储引擎中的新定义应用于表中的所有行:

UPDATE `

` SET “ = DEFAULT;

最后,删掉以前操作的表副本副本:

DROP TABLE `

`

你可能感兴趣的