第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

org.postgresql.util.PSQLException:錯誤:“7”處或附近的語法錯誤

org.postgresql.util.PSQLException:錯誤:“7”處或附近的語法錯誤

浮云間 2023-08-04 17:39:08
我正在嘗試在我的應(yīng)用程序中創(chuàng)建私人聊天,但是當(dāng)我嘗試創(chuàng)建表時出現(xiàn)此錯誤:org.postgresql.util.PSQLException:錯誤:“7”位置或附近的語法錯誤:14代碼: public static String checkIfChatExists(String code, String friend) throws SQLException {        String i = LoginManager.checkCode(code);        if(i.equals("code-not-exists")) {            return "invalid-code";        }        ResultSet rs = conn.prepareStatement("SELECT * FROM pwchats").executeQuery();        while (rs.next()) {            if(rs.getString("user1").equals(i) && rs.getString("user2").equals(friend) || rs.getString("user1").equals(friend) && rs.getString("user2").equals(i)) {                return "exists";            }        }        PreparedStatement pre = conn.prepareStatement("INSERT INTO pwchats(user1, user2) VALUES(?, ?)");        pre.setString(1, i);        pre.setString(2, friend);        pre.execute();        PreparedStatement getChatId  = conn.prepareStatement("SELECT * FROM pwchats WHERE user1 = ? AND user2 = ?;");        getChatId.setString(1, i);        getChatId.setString(2, friend);        ResultSet rss = getChatId.executeQuery();        while (rss.next()) {            PreparedStatement chat = conn.prepareStatement("CREATE TABLE " + rss.getInt("id") + "chat (username text NOT NULL, created_at timestamp with time zone NOT NULL DEFAULT now(), avatar text NOT NULL, message text NOT NULL, id serial NOT NULL);");            chat.execute(); //ERROR            return "done";        }        return "wat";    }
查看完整描述

1 回答

?
犯罪嫌疑人X

TA貢獻2080條經(jīng)驗 獲得超4個贊

您看到的錯誤可能來自那里:

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

通常在 SQL 中,表名不能以數(shù)字開頭。如果您要用雙引號將表名引起來,Postgres 仍然允許這樣做,但是每次查詢時都需要雙引號表名,這可能很乏味。

一種解決方案是將數(shù)字放在表名稱的末尾,例如:

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

DB Fiddle 演示

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


查看完整回答
反對 回復(fù) 2023-08-04
  • 1 回答
  • 0 關(guān)注
  • 214 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號