我正在尝试学习使用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')