Mysql
 sql >> Database >  >> RDS >> Mysql

Qualche driver JDBC supporta il comando LOAD DATA INFILE sql?

Quanto segue funzionerà tramite JDBC. Nota che per usare LOAD DATA INFILE hai bisogno del privilegio di superutente. Che non ti serve per LOAD DATA LOCAL INFILE

Connection con = DriverManager.getConnection("jdbc:mysql://localhost/foobar", "root", "password");
Statement stmt = con.createStatement();
String sql = 
    "load data infile 'c:/temp/some_data.txt' \n" +
    "   replace \n" +
    "   into table prd \n" +
    "   columns terminated by '\\t' \n" +
    "   ignore 1 lines";
stmt.execute(sql);

Se usi LOAD DATA INFILE la posizione del file è basata sul filesystem del server! Se usi un file locale, ovviamente è basato sul filesystem del client.