gpt4 book ai didi

sql - 列名包含下划线时的语法错误

转载 作者:行者123 更新时间:2023-11-29 11:55:52 25 4
gpt4 key购买 nike

我可以编译但不能执行下面的代码出现错误(使用 Postgres):

Fatal database error
ERROR: syntax error at or near "as"
Position: 13

import java.sql.*;
public class JDBCExample
{
private static final String JDBC_DRIVER = "org.postgresql.Driver";
private static final String URL = "jdbc:postgresql://hostname/database";
private static final String USERNAME = "username";
private static final String PASSWORD = "password";

public static void main(String[] args) throws Exception
{
Connection dbConn = null;
Statement query = null;
ResultSet results = null;

Class.forName(JDBC_DRIVER);

try
{
dbConn = DriverManager.getConnection(URL, USERNAME, PASSWORD);
}
catch (SQLException e)
{
System.out.println("Unable to connect to database\n"+e.getMessage());
System.exit(1);
}

try
{
query = dbConn.createStatement();
results = query.executeQuery("select 20_5 as name from flowshop_optimums");

while (results.next())
{
System.out.println(results.getString("name"));
}

dbConn.close();
}
catch (SQLException e)
{
System.out.println("Fatal database error\n"+e.getMessage());
try
{
dbConn.close();
}
catch (SQLException x) {}
System.exit(1);
}

} // main

} // Example

最佳答案

这不是下划线,而是列名以数字开头的事实。你需要逃避这个。

对于 MySQL,使用反引号。

select `20_5` as name from flowshop_optimums

对于 SQL Server,使用方括号。

select [20_5] as name from flowshop_optimums

对于 PostgreSQL,使用双引号。

select "20_5" as name from flowshop_optimums

关于sql - 列名包含下划线时的语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6279898/

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