数据库字段问题

【 使用环境 】 测试环境
OceanBase 4.2.5.3
OceanBase 4.2.1.7
【问题描述】清晰明确描述问题
为什么skip这个单词在数据库版本是4.2.5.3不能直接使用,需要用 `` 包起来,数据库版本是4.2.1.7是正常的
【附件及日志】



2 个赞

您在obclient的 测试下。 效果一样不 ??

2 个赞


一样的

2 个赞

mysql出现这种情况就是,关键字导致 ,或者更高级别的同义词或者其他对象和他同名导致的。

oceanbase搜索skip不是关键字, 您有创建过 skip 同名对象不 ?

1 个赞

没有的

1 个赞

show create table table_name \G --看下这个表的表结构

1 个赞

CREATE TABLE test_table (
id bigint(20) NOT NULL AUTO_INCREMENT,
skip varchar(255) NOT NULL DEFAULT ‘’,
created_at timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (id)
) AUTO_INCREMENT = 3 AUTO_INCREMENT_MODE = ‘ORDER’ DEFAULT CHARSET = utf8mb4 ROW_FORMAT = DYNAMIC COMPRESSION = ‘zstd_1.3.8’ REPLICA_NUM = 1 BLOCK_SIZE = 16384 USE_BLOOM_FILTER = FALSE TABLET_SIZE = 134217728 PCTFREE = 0

1 个赞

跟客户端有关系

1 个赞

与ob的版本有关?

1 个赞

创建表的时候,是不是这个字段加了单引号了

1 个赞

是的

建表时,表名或字段名使用单引号后,数据库不会自动处理,会按单引号内容强制匹配大小写,包括使用。如果不想这样,在建表时表名或字段名不要加单引号,这样数据库在使用时,会自动转大些使用。

skip应该是被算作关键词了,创建时候要使用 ` 号。