Mysql
 sql >> база данни >  >> RDS >> Mysql

mysql jdbc драйвер не поддържа разделители в тригери с множество изрази

Delimiter е команда за SQL клиент. Няма нужда да използвате разделител в JDBC. Примерът по-долу го показва:

import java.sql.*;

public class TriggerExample {

    public static void main(String args[]) {

        String connectionURL = "jdbc:mysql://localhost:3306/test";
        Connection con = null;

        try {
            Class.forName("com.mysql.jdbc.Driver");
            con = DriverManager.getConnection(connectionURL, "login",
                    "password");
            Statement stmt = con.createStatement();
            stmt.execute("CREATE TRIGGER obs_update BEFORE UPDATE ON obs "
                    + "FOR EACH ROW "
                    + "BEGIN "
                    + "IF OLD.voided = 0 AND NEW.voided = 1 THEN "
                    + "   DELETE FROM clinic_obs WHERE id = OLD.obs_id; "
                    + "ELSE "
                    + "   UPDATE clinic_obs SET clinic_obs.revision_token = NOW() "
                    + "   WHERE NEW.id = clinic_obs.id; "
                    + "END IF; "
                    + "END;");
            con.close();
        } catch (SQLException e) {
            e.printStackTrace();
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if (con != null) {
                try {
                    con.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        }
    }
}



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. специфична актуализация на mysql въз основа на група по данни

  2. Екраниране на знака двоеточие ':' в JPA заявки

  3. UnicodeEncodeError:Кодекът 'latin-1' не може да кодира символ

  4. Как да профилирате MySQL

  5. Как да получите всеки N-ти ред в MySQL