编辑:我希望使用该表(viewPaziente)的视图向表(paziente)添加值,而不是直接在表中添加。
edit2:在代码中发现了一个愚蠢的错误,现在它确实给了我一个错误,但它没有帮助:
org.h2.jdbc.JdbcSQLException:不支持功能:“VIEW”; SQL语句: INSERT INTO“viewPaziente”值(?,?,?,?,?,?,?,?,?,?,?,?,?)[50100-147]
是否可以在表格的视图中插入一行?
我的意思是......我有一个带有很多字段的表“paziente”,我创建了一个Paziente视图,我想通过视图向paziente添加一行。是否可以在H2中执行此操作?
我正在使用以下代码
public static boolean AddAnagrafica(String nome, String cognome,
String data, String telefono, String email,String codiceFiscale, boolean isDonna, String indirizzo, String citta,
String provincia, String cap, String paese ){
Connection conn=null;
try {
conn = getConnection();
PreparedStatement st = conn.prepareStatement("INSERT INTO \"viewPaziente\" values(?,?,?,?,?,?,?,?,?,?,?,?,?)");
st.setInt(1, new Random().nextInt());
st.setString(2,nome);
st.setString(3,cognome);
st.setString(4,data);
st.setString(5,telefono);
st.setString(6,email);
st.setString(7,codiceFiscale);
st.setBoolean(8,isDonna);
st.setString(9,indirizzo);
st.setString(10,citta);
st.setString(11,provincia);
st.setString(12,cap);
st.setString(13,paese);
st.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
return false;
}
答案 0 :(得分:4)
在H2中,默认情况下视图不可更新。要使它们可更新,您需要使用“代替”触发器。关于如何执行此操作的示例available in the H2 source repository。
答案 1 :(得分:-1)
如果你想通过java复制要插入视图的特定列,我希望这就是你要找的,如果不让我知道的话。
st.executeQuery("insert into viewPaziente(ID, Name, Start_Date) values SELECT id, first_name, sysdate FROM Paziente Where <matching condition>");
有关插入,更新或删除的详细信息 http://sql-plsql.blogspot.com/2009/03/insert-update-delete-views.html