文档首页/
数据库和应用迁移 UGO/
用户指南/
语法转换指南/
转换错误码/
MySQL To GaussDB 转换错误码/
U0400039:GaussDB M 兼容字符串数据类型的默认值定义不支持特殊字符“\0”(0x00)
更新时间:2025-06-04 GMT+08:00
U0400039:GaussDB M 兼容字符串数据类型的默认值定义不支持特殊字符“\0”(0x00)
描述
数据库类型与版本
- 源库类型与版本:MySQL 5.5、5.6、5.7、8.0版本。
- 目标库类型与版本:GaussDB M 兼容。
语法示例
当 GUC 参数“m_format_behavior_compat_options”的值包含“enable_escape_string”时,GaussDB 不支持使用特殊字符“\0”(0x00)作为列的默认值,将导致使用“\0”作为列默认值的表建表失败;当 GUC 参数“m_format_behavior_compat_options”的值不包含“enable_escape_string”时,同样的情况下 GaussDB 不会报错,但是会将“\0”视为由2个字符组成的普通字符串,与 MySQL 中不一致。如下示例将生成此错误提示。
CREATE TABLE test_default_val_0x00( id INT, c_char CHAR(3) DEFAULT '\0\0\0', c_varchar VARCHAR(10) DEFAULT '\0\0\0', c_binary BINARY(3) DEFAULT '\0\0\0', c_varbinary VARBINARY(10) DEFAULT '\0\0\0' );
改造建议
修改“字符串数据类型的默认值定义包含特殊字符‘\0’(0x00)”转换配置项。