为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:DM8
【操作系统】:win10
【CPU】:i5
【问题描述】*:两张表结构一样 为啥test_user可以执行成功 test_users就提示-2106: 第2 行附近出现错误:
无效的表或视图名[TEST_USERS] 表名小写必须加双引号么
CREATE TABLE "DS0"."test_user"
(
"ID" INT NOT NULL,
"NAME" VARCHAR(50),
"AGE" INT,
"CAR_ID" INT,
NOT CLUSTER PRIMARY KEY("ID")) STORAGE(ON "MAIN", CLUSTERBTR) ;
CREATE TABLE "DS0"."test_users"
(
"ID" INT NOT NULL,
"NAME" VARCHAR(50),
"AGE" INT,
"CAR_ID" INT,
NOT CLUSTER PRIMARY KEY("ID")) STORAGE(ON "MAIN", CLUSTERBTR) ;
双引号具有匹配大小写的功能。
我们在建立表的时候,不要加上双引号,这样子在建立和查询时,不管大小写如何混用,服务端处理的都是大写的。
在您这个例子中,test_user查询不报错,是因为有 TEST_USER这个表,查询的是它。
而,test_users报错,是因为没有 TEST_USERS这个表,只有 test_users这个表,要查询这个表,只能 from "test_users"
在mysql上,我们一般是使用的大小写不敏感;我们也可以群则在初始化达梦示例时,选择字符串比较忽略大小写(即字符串大小写不敏感),那么,虽然dmserver依然保持上述原则,但是 from TEST_USERS 也可以查询到 test_users了;只是系统中,无法同时存在,TEST_USERS、test_users.