@Override public void drop(boolean ignoreDoesNotExist) throws SQLException { try { super.drop(ignoreDoesNotExist); } catch (SQLException ex) { if (ex.getSQLState().equals("42P01")) { // the triggers table does not exist anymore // ignore... } else { throw ex; } } PreparedStatement ps = yordifier .getConnection() .prepareStatement("DELETE FROM " + Yordifier.TRIGGERS.getName() + " WHERE NAME = ?"); ps.setString(1, name); ps.execute(); }
/** * Holt sich alle Triggers zu der übergebenen Procedure aus der Datenbank, die über die Yordifier * Connection angebunden ist. * * @param yordifier Yordifier für die Connection * @param procedure Procedure für die die Trigger geholt werden sollen * @return Liste von Triggers * @throws SQLException Falls etaws schief geht :-) */ public static List<Trigger> getAllByProcedure(Yordifier yordifier, Procedure procedure) throws SQLException { PreparedStatement ps = yordifier .getConnection() .prepareStatement( "SELECT NAME, TABLE_NAME FROM " + Yordifier.TRIGGERS.getName() + " WHERE FUNCTION_NAME = ?"); ps.setString(1, procedure.getName()); ResultSet rs = ps.executeQuery(); List<Trigger> triggers = new ArrayList<Trigger>(); while (rs.next()) { Trigger t = new Trigger(yordifier); t.created = true; t.procedure = procedure; t.name = rs.getString(1); t.table = rs.getString(2); triggers.add(t); } return triggers; }