插入到h2数据库的视图中

发布于 2024-10-17 18:18:15 字数 1463 浏览 4 评论 0原文

编辑: 我想将值添加到使用该表的视图 (viewPaziente) 的表 (paziente),而不是直接添加到表。

edit2:在代码中发现了一个愚蠢的错误,现在它确实给了我一个错误,但它没有帮助:

org.h2.jdbc.JdbcSQLException:不支持的功能:“VIEW”; SQL语句: 插入“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;
}

edit: I want to add values to a table (paziente) working with a view of that table (viewPaziente) and not directly the table.

edit2: Found a stupid mistake in the code, now it does give me an error, but it is not helping:

org.h2.jdbc.JdbcSQLException: Feature not supported: "VIEW"; SQL statement:
INSERT INTO "viewPaziente" values(?,?,?,?,?,?,?,?,?,?,?,?,?) [50100-147]

Is it possible to insert a row in a view of a table?

I mean... I have a table "paziente" with many fields, I've created a view of Paziente and I want to add a row to paziente through the view. Is it possible to do this in H2?

I'm using the following code

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;
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

傾城如夢未必闌珊 2024-10-24 18:18:15

在 H2 中,视图默认不可更新。为了使它们可更新,您需要使用“而不是”触发器。有关如何执行此操作的示例 可在 H2 源存储库中找到

In H2, views are not updatable by default. To make them updatable, you need to use an 'instead of' trigger. An example on how to do that available in the H2 source repository.

只是一片海 2024-10-24 18:18:15

如果您想通过 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

If you want to copy specific columns to be inserted in to a view through java ,I hope this is what you are looking for, if not let me know.

st.executeQuery("insert into viewPaziente(ID, Name, Start_Date) values SELECT id, first_name, sysdate FROM Paziente Where <matching condition>");

More Information on Insert ,Update or Delete
http://sql-plsql.blogspot.com/2009/03/insert-update-delete-views.html

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文