Java org.postgresql.util.PSQLException:错误:语法错误位于或接近;7“;

Java org.postgresql.util.PSQLException:错误:语法错误位于或接近;7“;,java,sql,postgresql,Java,Sql,Postgresql,我正在尝试在我的应用程序中创建私人聊天,但当我尝试创建表时,出现以下错误: org.postgresql.util.PSQLException:错误:位于或接近“7”的语法错误 职位:14 代码: 您看到的错误可能来自于此: preparedStatement chat = conn.prepareStatement("CREATE TABLE " + rss.getInt("id") + "chat (...);"); 通常在SQL中,表名不能以数字开头。如果要用双引号括住表名,Postgr

我正在尝试在我的应用程序中创建私人聊天,但当我尝试创建表时,出现以下错误:

org.postgresql.util.PSQLException:错误:位于或接近“7”的语法错误 职位:14

代码:


您看到的错误可能来自于此:

preparedStatement chat = conn.prepareStatement("CREATE TABLE " + rss.getInt("id") + "chat (...);");
通常在SQL中,表名不能以数字开头。如果要用双引号括住表名,Postgres仍然允许这样做,但是每次查询表名时都需要双引号,这可能会很繁琐

一种解决方案是将数字放在表名的末尾,如:

preparedStatement chat = conn.prepareStatement("CREATE TABLE chat" + rss.getInt("id") + " (...);");

create table 7chat(x int);

请考虑从代码中创建表是否有意义。
create table 7chat(x int);
ERROR: syntax error at or near "7" LINE 1: create table 7chat(x int); ^
create table "7chat"(x int);
-- works

create table chat7(x int);
--works