Jak wpisać kilka zapytań sql w jednym statemencie?

0

Jak pisze zapytania pojedynczo to wszystko działa.

    st.executeUpdate("UPDATE tabelaDane SET name='Ewa' WHERE ID =1;");
    st.executeUpdate("UPDATE tabelaDane SET name='Zenek' WHERE ID =2;");
    st.executeUpdate("UPDATE tabelaDane SET name='Marcin' WHERE ID =3;");
    st.executeUpdate("UPDATE tabelaDane SET name='Jola' WHERE ID =4;");
    st.executeUpdate("UPDATE tabelaDane SET name='Arek' WHERE ID =5;");


    st.executeUpdate( "UPDATE tabelaDane SET name='Ewa' WHERE ID =1;"
                    + "UPDATE tabelaDane SET name='Zenek' WHERE ID =2;"
                    + "UPDATE tabelaDane SET name='Marcin' WHERE ID =3;"
                    + "UPDATE tabelaDane SET name='Jola' WHERE ID =4;"
                    + "UPDATE tabelaDane SET name='Arek' WHERE ID =5;");

a jak wpisze kilka do jednego to wywala mi błąd:
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'UPDAT

ktoś może wie w czym jest problem

3

Jak chcesz coś takiego robić to rób po ludzku za pomocą executeBatch ;]

0

executeBatch lekko przyspiesza ale wydaje mi się że on zbiera zapytania a później wysyla wszystkie i tak po jednym a nie wszystkie na raz.

Problem jest chyba w connectorze, obecnie używam com.mysql.jdbc.Driver

Może znacie jakiś lepszy??

0

Jesli za kazdym razem musisz updateowac X rekordow naraz to zastanow sie czy nie lepiej zrobic jeden rekord z lista oddzielona srednikiem

0

niestety to musza byc rekordy i to w liczbie 20-30 tys

0

Wyłącz autocommit transakcji i commituj ręcznie po całym batchu.

1 użytkowników online, w tym zalogowanych: 0, gości: 1