我正在尝试使用Java中的PreparedStatement和postgres JDBC在表中插入数据。 我想插入列startdate和列enddate值,条件是给出roomnumber(?);
PreparedStatement stm = conn.prepareStatement( “INSERT INTO room(startdate,enddate)值(?,?)WHERE roomnumber =?”))
它在WHERE给我一个错误。 什么是正确的语法。 非常感谢
答案 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 )