Postgres INSERT INTO where子句与Java preparedstatement

时间:2017-09-16 13:57:15

标签: java postgresql prepared-statement where-clause

我正在尝试使用Java中的PreparedStatement和postgres JDBC在表中插入数据。 我想插入列startdate和列enddate值,条件是给出roomnumber(?);

PreparedStatement stm = conn.prepareStatement( “INSERT INTO room(startdate,enddate)值(?,?)WHERE roomnumber =?”))

它在WHERE给我一个错误。 什么是正确的语法。 非常感谢

3 个答案:

答案 0 :(得分:3)

使用UPDATE更改现有行,使用INSERT创建新行。 文档中有许多示例:https://www.postgresql.org/docs/9.5/static/sql-update.html

例如:UPDATE room SET startdate = ?, enddate = ? WHERE roomnumber = ?

答案 1 :(得分:0)

您可以使用类似的内容:

insert into room(startdate, enddate) select '2020-01-01'::date, '2020-02-11'::date where (select roomnumber = ? from roomnumber_table);

还可以查看以下内容:https://www.postgresql.org/docs/12/queries-with.html

答案 2 :(得分:0)

使用插入到选择中而不是插入到值中

INSERT INTO table1(firstname, lastname)
    select 'Sally', 'Brown'
    Where exists (Select 1 from table2 where field1=val1 )