暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

MogDB 支持current_date/current_time关键字作为字段名

原创 MogDB 2024-08-06
184

可获得性

本特性自MogDB 5.0.0版本开始引入。

特性简介

支持current_date/current_time作为表的字段名进行操作。

客户价值

增强MogDB与Oracle的兼容性,减少应用程序的迁移代价。

特性描述

数据库中,current_date和current_time作为系统函数,用于返回当前系统日期和系统时间,并且作为RESERVED_KEYWORD关键字不能用于表字段名。本特性支持将current_date/current_time用作表的字段名进行操作,以兼容应用程序开发。

特性约束

  • 目前只支持current_date/current_time作为字段名在CREATE TABLE时成功;
  • 其他DML操作,如SELECT/DELETE/UPDATE由于和current_date系统函数存在歧义,暂不支持操作。(相关操作需要加双引号处理)
  • 目前current_date/current_time在check约束里还是定义为系统函数而非字段,识别为字段需要加双引号处理。

示例

-- CREATE TABLE操作 MogDB=# CREATE TABLE test_date(current_date date); CREATE TABLE MogDB=# CREATE TABLE test_time(current_time time); CREATE TABLE -- UPDATE操作 MogDB=# UPDATE test SET current_date = '2022-12-14'; UPDATE 1 MogDB=# CREATE TABLE test(current_date date); CREATE TABLE MogDB=# INSERT INTO test VALUES ('2022-12-15'); INSERT 0 1 MogDB=# SELECT * FROM test; current_date --------------------- 2022-12-15 00:00:00 (1 row) -- SELECT操作会作为系统函数返回当前日期或时间,字段操作需加双引号。 MogDB=# SELECT current_date FROM test; date ------------ 2022-12-16 (1 row) MogDB=# SELECT "current_date" FROM test; current_date --------------------- 2022-12-15 00:00:00 注:加双引号显示字段值日期。 (1 row) -- DELETE操作默认为是系统函数操作,字段操作需要双引号。 MogDB=# DELETE FROM test WHERE CURRENT_DATE = '2022-12-14'; DELETE 0 MogDB=# SELECT * FROM test; current_date --------------------- 2022-12-14 00:00:00 (1 row) MogDB=# DELETE FROM test WHERE "current_date" = '2022-12-14'; DELETE 1 MogDB=# SELECT * FROM test ; current_date -------------- (0 rows)
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论