sql >> Databasteknik >  >> RDS >> Mysql

Byta namn på kolumner i en MySQL select-sats med R-paketet RJDBC

Jag har stött på samma frustrerande problem. Ibland AS nyckelord skulle ha sin avsedda effekt, men andra gånger skulle det inte ha det. Jag kunde inte identifiera förutsättningarna för att få det att fungera korrekt.

Kort svar: (Tack vare Simon Urbanek (paketunderhållare för RJDBC), Yev och Sebastien! Se Långa svaret. ) En sak som du kan försöka är att öppna din JDBC-anslutning med ?useOldAliasMetadataBehavior=true i din anslutningssträng. Exempel:

drv <- JDBC("com.mysql.jdbc.Driver", "C:/JDBC/mysql-connector-java-5.1.18-bin.jar", identifier.quote="`")
conn <- dbConnect(drv, "jdbc:mysql://server/schema?useOldAliasMetadataBehavior=true", "username", "password")
query <- "SELECT `a` AS `b` FROM table"
result <- dbGetQuery(conn, query)
dbDisconnect(conn)

Detta slutade fungera för mig! Se mer information, inklusive varningar, i Långt svar.

Långt svar: Jag provade alla möjliga saker, inklusive att skapa vyer, ändra frågor, använda JOIN-satser, INTE använda JOIN-satser, använda ORDER BY och GROUP BY-satser, etc. Jag kunde aldrig ta reda på varför vissa av mina frågor kunde byta namn på kolumner och andra var inte det.

Jag kontaktade pakethållaren (Simon Urbanek.) Här är vad han sa:

Han rekommenderade sedan att jag skulle se till att jag hade den senaste JDBC-drivrutinen för MySQL. Jag hade den senaste versionen. Men det fick mig att tänka "det kanske ÄR en bugg med JDBC-drivrutinen." Så jag sökte på Google efter:mysql jdbc driver bug alias .

Det bästa resultatet för den här frågan var ett inlägg på bugs.mysql.com . Yev, som använder MySQL 5.1.22, säger att när han uppgraderade från drivrutinsversion 5.0.4 till 5.1.5, slutade hans kolumnalias att fungera. Frågade om det var en bugg.

Sebastien svarade, "Nej, det är inte en bugg! Det är en dokumenterad beteendeförändring i alla efterföljande versioner av drivrutinen." och föreslog att du använder ?useOldAliasMetadataBehavior=true , med hänvisning till dokumentation för JDBC-drivrutinen .

Varning Lector: Dokumentationen för JDBC-drivrutinen anger att

Jag har inte haft tid att helt undersöka vad detta betyder. Med andra ord, jag vet inte vad alla konsekvenser är av att använda useOldAliasMetadataBehavior=true är. Använd på egen risk. Har någon annan mer information?



  1. Återställa MySQL-databas från fysiska filer

  2. WIDE tabeller mysql

  3. Wampserver-ikonen blir inte helt grön, mysql-tjänster startar inte?

  4. Orbeon Forms Postgres DB-anslutning