oceanbase mysql租户模式下创建表失败

【 使用环境 】
测试环境
【 OB or 其他组件 】
OB
【 使用版本 】
4.2.4
【问题描述】
在MySQL租户模式下创建表,其中存在字段类型为date, 默认值为default curdate(),无法创建表,报错内容为:
(conn=800774) You have an error in your SQL syntax; check the manual that corresponds to your OceanBase version for the right syntax to use near 'curdate() comment ‘任务计划打卡日期’,
【复现路径】
MySQL租户模式下,执行create table 创建表语句,包含date类型列,默认值为curdate(),例如:task_day date DEFAULT curdate() COMMENT ‘任务计划打卡日期’

【附件及日志】推荐使用OceanBase敏捷诊断工具obdiag收集诊断信息,详情参见链接(右键跳转查看):

【SOP系列 22 】——故障诊断第一步(自助诊断和诊断信息收集)

【备注】基于 LLM 和开源文档 RAG 的论坛小助手已开放测试,在发帖时输入 [@论坛小助手] 即可召唤小助手,欢迎试用!

1 个赞

日志采集场景: SQL 执行出错
日志采集命令: obdiag gather scene run --scene=observer.sql_err --env “{db_connect=’-h127.0.0.1 -P2881 -utest@test -p****** -Dtest’, trace_id=‘Yxx’}”

为了更好地帮助您解决在 OceanBase MySQL 租户模式下创建包含 date 类型列且默认值为 curdate() 的表时遇到的 SQL 语法错误问题,建议您使用上述 obdiag 命令进行日志采集,并将采集到的日志提供给我们以便确认问题所在。

另外,为了确定具体的问题,在此需要您提供一些信息:

  1. 您使用的 OceanBase 版本号是多少?
  2. 创建表的具体 SQL 语句是什么?
  3. 报错的完整错误信息能否提供一下?
  4. 是否有自定义的配置项或参数设置?如果有,请提供相关配置。
  5. 在其他版本或者环境中是否可以成功执行相同的建表语句?

附上敏捷诊断工具 obdiag 使用帮助链接


curdate()用括号括起来就行,建表语句例子如下
CREATE TABLE t1 (
id INT,
task_day DATE DEFAULT (curdate()) COMMENT ‘任务计划打卡日期’
);

1 个赞

这个是标准的语法 标题发的语法有问题