[R] Problems with modifying data in a MySQL database
Marcus Wurzer
mwurzer at wu-wien.ac.at
Thu Jan 10 12:01:39 CET 2008
Thank you!
Duncan Murdoch schrieb:
> On 1/8/2008 7:11 AM, Marcus Wurzer wrote:
>> Using the package /RMySQL/ I have established a connection ('con1')
>> to a MySQL-Database called 'mc'.
>> This database contains a table called 'mc_2000' which has 200000
>> observations on several
>> variables. One of these variables is called 'B5' (type 'double').
>> When I generate a numeric vector in R called 'B6' that has the same
>> length as 'B5': How can I replace the values of 'B5' with the values
>> of 'B6'? I tried
>>
>> dbGetQuery(con1,
>> "UPDATE mc_2000 SET B5 = B6", B6)
>>
>> but this doesn't work. The same applies to:
>>
>> dbGetQuery(con1,
>> "REPLACE mc_2000(B5) VALUES(B6)", B6)
>>
>> Any help would be appreciated very much.
>
> I haven't used RMySQL specifically, but in general the DBI based
> database packages don't handle parameters they way you want. You need
> to construct an SQL query as a string (using paste(), etc.) and then
> use dbGetQuery to send it to the database.
>
> However, constructing a query to do what you want is tricky. You need
> to specify a key so it knows which entry of B6 goes with which entry
> in the database, etc. It might be easiest to read the whole table
> into memory using dbReadTable, modify it, and write it out with
> dbWriteTable.
>
> Duncan Murdoch
>
>
More information about the R-help
mailing list