Java连接PostgreSQL时出现‘syntax error at or near "("’语法错误求助
解决PostgreSQL创建表时的"syntax error at or near '('"错误
你的问题出在SQL语句的整数类型声明上:PostgreSQL不支持int(50)、int(20)这种带括号指定长度的写法。int在PostgreSQL中是固定4字节的整数类型,无需额外指定长度。
修正方案
- 把
phone_number int(50)和departament_code int(20)改成phone_number INT、departament_code INT; - 额外提示:手机号这类数据不适合用整数类型存储(会丢失前导零、无法存储特殊符号),更推荐用
VARCHAR(50)。
修正后的createTable方法代码:
public void createTable(Connection conn, String table_name){ Statement statement; try{ String query ="CREATE TABLE "+ table_name+" (id SERIAL PRIMARY KEY, first_name VARCHAR(100), last_name VARCHAR(100), phone_number VARCHAR(50), departament_code INT, email_address VARCHAR(200), password VARCHAR(50))"; statement = conn.createStatement(); statement.executeUpdate(query); System.out.println("Table created"); } catch (Exception e){ System.out.println(e); } }
内容的提问来源于stack exchange,提问作者MsLaus
相关产品推荐
相关产品推荐

