ЕСЛИ НЕ СУЩЕСТВУЕТ в UCanAccess

У меня есть следующий код, но UCanAccess не позволяет мне использовать IF NOT EXISTS. У кого-нибудь есть какие-либо идеи?

"if not exists (select ArtikelNr from Artikel where ArtikelNr='"+ValueRead.prüfen1()+"')" + 
                "begin" + 
                "    if not exists (select isa_id from Artikel where isa_id='"+Integer.parseInt(Data.textField.getText())+"')" + 
                "    begin" + 
                "INSERT INTO Artikel ([HERE ARE THE TABLES) VALUES 

[HERE ARE THE VALUES]

                "    end" + 
                "end";

person Sonaldo    schedule 17.07.2019    source источник


Ответы (1)


Вы можете сделать что-то вроде этого:

// test data
int artikelNr = 123;
int isa_id = 1234;
String description = "artikel_123";

String sql = ""
        + "INSERT INTO Artikel (ArtikelNr, isa_id, description) "
        + "SELECT ? AS ArtikelNr, ? AS isa_id, ? as description "
        + "FROM DUAL "
        + "WHERE NOT EXISTS ("
        + "    SELECT * FROM Artikel "
        + "    WHERE ArtikelNr=? AND isa_id=?)";
PreparedStatement ps = conn.prepareStatement(sql);

// values to INSERT
ps.setInt(1, artikelNr);
ps.setInt(2, isa_id);
ps.setString(3, description);

// values for WHERE NOT EXISTS
ps.setInt(4, artikelNr);
ps.setInt(5, isa_id);

int rtn = ps.executeUpdate();
System.out.printf("%d row(s) inserted%n", rtn);
person Gord Thompson    schedule 18.07.2019