文档首页/ 数据库和应用迁移 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)”转换配置项。

相关文档