
# U0400003：GaussDB列定义不支持ON UPDATE选项
#### 描述
**数据库类型与版本**
- 源库类型与版本：MySQL 5.5、5.6、5.7、8.0版本。
- 目标库类型与版本：GaussDB V2.0-3.2及之前的版本。
**语法示例**
默认情况下，UGO保留ON UPDATE子句不转换，并生成此错误提示。
GaussDB V2.0-3.2及之前的版本不支持表列定义中指定ON UPDATE子句，如下示例将不支持。
```
CREATE TABLE demo (
    id INT,
    name VARCHAR(255) DEFAULT null,
    create_time TIMESTAMP WITH TIME ZONE DEFAULT (CLOCK_TIMESTAMP())::TIMESTAMP(0) WITH TIME ZONE,
    update_time TIMESTAMP WITH TIME ZONE DEFAULT (CLOCK_TIMESTAMP())::TIMESTAMP(0) WITH TIME ZONE ON UPDATE CURRENT_TIMESTAMP
);
```
#### 改造建议
1、修改"表列定义on update选项"转换配置项，可以选择通过触发器的形式实现ON UPDATE的功能。请注意，触发器可能会影响使用性能，并提升数据库系统的维护难度，需要您充分评估业务影响。
2、也可以参考以下示例，手动修改注释掉ON UPDATE子句。
```
CREATE TABLE demo (
    id INT,
    name VARCHAR(255) DEFAULT null,
    create_time TIMESTAMP WITH TIME ZONE DEFAULT (CLOCK_TIMESTAMP())::TIMESTAMP(0) WITH TIME ZONE,
    update_time TIMESTAMP WITH TIME ZONE DEFAULT (CLOCK_TIMESTAMP())::TIMESTAMP(0) WITH TIME ZONE /*ON UPDATE CURRENT_TIMESTAMP*/
);
```
此时需要在每次更新demo表时都显式更新update_time字段的值，保证数据的准确性。
