Java DB / Derby - 表(列)名称中的空格 - 如何转义?在 MySQL 数据库中,它只是由 ``(重音)转义,但如果我尝试执行查询(Java DB),例如:
CREATE TABLE `etc etc` (ID INT PRIMARY KEY, Title VARCHAR(12))
我得到错误:
java.sql.SQLSyntaxErrorException:第 1 行第 14 列的词法错误。遇到:“`”(96),在:“”之后。
有什么解决办法吗?
编辑:
确实感谢您提供全面的答案。我发现了有趣的事情(Java DB):
可以这样创建表:
CREATE TABLE "etc etc" (ID INT PRIMARY KEY, Title VARCHAR(12))
后来得到结果:
SELECT * FROM "etc etc"
但是如果我这样创建表(没有空格和引号):
CREATE TABLE etc_etc (ID INT PRIMARY KEY, Title VARCHAR(12))
然后得到这样的结果(用双引号,例如,它们并不真正需要):
SELECT * FROM "etc_etc"
我得到错误:
java.sql.SQLSyntaxErrorException:表/视图“etc_etc”不存在。
所以我的结论是,如果在创建表时使用了引号(名称是否包含空格并不重要),稍后在获取结果时,也应该使用引号。反之亦然(在这种情况下当然没有空格)。
我同意最好不要使用空格,而是使用_
字符。但我喜欢 MySQL 上的那些重音字符......