Avatar billede wiuff Nybegynder
29. oktober 2002 - 18:55 Der er 6 kommentarer og
3 løsninger

Flere query i et statement mod MySQL

Hejsa

Ok, jeg har et problem med Java og MySQL.

Systemet er:

j2sdk 1.4
MySQL 3.23
MySQL's JDBC Driver

Det jeg gerne vil gøre er, at have en SQL alá:

TRUNCATE TABLE ...
INSERT INTO TABLE ...
INSERT INTO TABLE ...
SELECT * FROM ...

Formålet er som det måske fremgår, at kunne lave et mini UNION hack, da jeg kører (og skal køre på) MySQL 3.23.

Problemet er, at jeg i mit Java program gerne ville sende disse til MySQL med et kald til MySQLs Driver for derved at fjerne (?) problemer med samtidighed og så videre.

Desværre lader det ikke til, at jeg kan få MySQL's JDBC driver til at acceptere en String der indeholder mere end ét SQL statement. ...


Nogle gode idéer/erfaringer på dette område?
Avatar billede di8leva Nybegynder
29. oktober 2002 - 18:58 #1
Jag har haft samma problem med mySQL och fick svaret:
"det kan ikke lade sig göres", "det går slet ikke"
mySQL kan inte hantera multiple statements.....
Avatar billede di8leva Nybegynder
29. oktober 2002 - 18:59 #2
så vi bytte DB till postgreSQL

måske mySQL4 kan hantera flera querys i en string när det kommer ut....måske... men just nu är version 4 bara beta.
Avatar billede arne_v Ekspert
29. oktober 2002 - 19:14 #3
Det er ikke supporteret at lave flere SQL statements
i et JDBC kald.

Men I bør kunne opnå den ønskede effekt ved at bruge
transactions og et passende højt transaction isolation level.
Avatar billede wiuff Nybegynder
29. oktober 2002 - 19:40 #4
Hmm... problemet er, at Transactions ikke er understøttet i MySQL 3.*

En skam!

Jeg lader lige points hænge en dags tid, i håb om at der er nogen der kender et virkeligt godt hack til løsning af problemet! :)
Avatar billede arne_v Ekspert
29. oktober 2002 - 19:47 #5
Nu er jeg ikke en MySQL ekspert, men jeg troede
faktisk, at MySQL understøtede transactions med
InnoDB tables.
Avatar billede disky Nybegynder
29. oktober 2002 - 21:31 #6
wiuff:
Ret nemt at svare på, det kan man ikke.

Men som andre siger brug transactions, det er måden at gøre det på.
Avatar billede wiuff Nybegynder
29. oktober 2002 - 22:29 #7
disky: Hvordan vil du gøre det med MySQL 3.23?
Avatar billede disky Nybegynder
30. oktober 2002 - 07:21 #8
Taget fra MySQL siden:
This is the current stable release of MySQL. Recommended for most users.

You can find a description of the major new features in MySQL 3.23 here.
The complete changelog can be found here.
You can find how to upgrade from MySQL 3.22 here.

MySQL 3.23.34a (and newer) source releases include the full source for Berkeley DB and InnoDB tables. By using these table handler you can use transactions in MySQL. MySQL-Max has both of these handlers compiled-in.



DU skal altså bruge en NON stable version for at få det, eller skifte database system, eller vente.
Avatar billede arne_v Ekspert
30. oktober 2002 - 08:07 #9
Disky>

3.23.34a is 3.23 => is stable.

Another quote from the web-site:

#* MySQL database server & standard clients:
#* MySQL 3.23 -- Stable release (recommended) latest version is 3.23.52

So a 3.23.52 has InooDB and is stable.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester