为什么此插入会出现错误:表 "table" 中有一个名为 "column" 的列,但无法从查询的这一部分引用它



我正在尝试学习使用JDBC对PostgreSQL数据库进行更改。我想尝试将数据插入表中。

private static void createDatabase(Connection connection) throws SQLException {
Statement stmt = connection.createStatement();
stmt.executeUpdate("DROP TABLE IF EXISTS " + TABLE_NAME);
stmt.executeUpdate("CREATE TABLE my_table (Column1 Text)");
stmt.executeUpdate("INSERT INTO my_table VALUES (column1)");        
}   

运行这个,我得到一个错误:

错误:列"列1";不存在
提示:有一个名为"的列;列1";在表"中;my_table";,但不能从查询的这一部分引用它。

如果表中存在该列,为什么会出现错误?

问题是您的语句INSERT INTO my_table VALUES (Column1)要求将column1的当前值插入(到column1中(。如果该行还不存在,则无法执行此操作:没有column1的当前值。顺便说一句,明确列出要插入的列是一种很好的做法

values子句需要一个值、表达式或参数的列表。例如,您可以使用:

INSERT INTO my_table (Column1) VALUES ('Value for Column1')

最新更新