gpt4 book ai didi

java - 创建语句返回错误 : syntax error at or near "RETURNING"

转载 作者:行者123 更新时间:2023-12-02 09:43:30 25 4
gpt4 key购买 nike

我想使用 CREATE 语句创建数据库表。我收到错误消息

Error: syntax error at or near "RETURNING". 

我了解到 JDBC 驱动程序存在某种错误。当我发现这个的时候。 Postgres JDBC driver: PSQLException: syntax error at or near RETURNING

看来我需要设置 Quirk 模式。但我不知道该怎么做。

现在我有

Connection dbConnection;
dbConnection = DriverManager.getConnection(connectionString,username,password);
Statement st = dbConnection.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
st.executeUpdate(query,Statement.RETURN_GENERATED_KEYS);

我不知道应该在哪里设置怪异模式

编辑:

很抱歉缺少详细信息。它带我走过了引导之路。

该声明通过

st.executeUpdate(query,Statement.RETURN_GENERATED_KEYS);

SQL 是

        String employeeTable="CREATE TABLE \"employee\" (\n" + 
" \"employee_id\" serial,\n" +
" \"employee_first_name\" TEXT,\n" +
" \"employee_middle_name\" TEXT,\n" +
" \"employee_last_name\" TEXT,\n" +
" \"employee_dob\" date ,\n" +
" \"employee_ssn\" TEXT NOT NULL DEFAULT '0',\n" +
" \"employee_wages\" FLOAT(30) NOT NULL DEFAULT '0',\n" +
" \"employee_password\" TEXT DEFAULT '0',\n" +
" \"employee_issupervisoer\" BOOLEAN NOT NULL DEFAULT 'false',\n" +
" \"employee_hassupervisoer\" BOOLEAN NOT NULL DEFAULT 'false',\n" +
" \"employee_supervisor_id\" integer,\n" +
" \"employee_clockstatus\" BOOLEAN DEFAULT 'false',\n"+ // True = IN : False = OUT
" \"employee_lastpunch\" timestamp, \n"+
" \"employee_isactive\" BOOLEAN, \n"+
" CONSTRAINT employee_pk PRIMARY KEY (\"employee_id\")\n" +
") WITH (\n" +
" OIDS=FALSE\n" +
");\n";

老实说,我认为 SQL 并不重要。大约六个月前,这个说法对我有用。我不知道发生了什么变化,但我从 Postgresql 9.4 更改为 10.7?无论最新的 10.x 稳定版本是什么。我将 Gradle 更新为

// https://mvnrepository.com/artifact/org.postgresql/postgresql
compile group: 'org.postgresql', name: 'postgresql', version: '42.2.6'

最佳答案

您不能将 CREATE TABLE 语句与 RETURNING 子句结合使用(因为它不会“返回”任何内容)。

当您调用executeUpdate(query,Statement.RETURN_GENERATED_KEYS)时,您正在请求返回从DML语句生成的键。 Postgres JDBC 驱动程序通过向查询添加 RETURNING 子句来实现此目的 - 这对于 DDL 语句显然没有意义。

改用execute(query)

executeUpdate(query)(不请求生成的 key )

关于java - 创建语句返回错误 : syntax error at or near "RETURNING",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56858930/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com