2

編集:テーブルを直接ではなく、そのテーブル(viewPaziente)のビューで動作するテーブル(paziente)に値を追加したい。

edit2:コードに愚かな間違いが見つかりました。エラーが発生しますが、役に立ちません。

org.h2.jdbc.JdbcSQLException:サポートされていない機能: "VIEW"; SQLステートメント:INSERT INTO "viewPaziente" values(?、?、?、?、?、?、?、?、?、?、?、?、?)[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;
}
4

2 に答える 2

7

H2では、ビューはデフォルトでは更新できません。それらを更新可能にするには、「代わりに」トリガーを使用する必要があります。H2ソースリポジトリで利用可能な方法の例。

于 2011-02-21T11:30:29.077 に答える
-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

于 2011-02-17T14:12:55.683 に答える