R+MySQL数据库的学习笔记(11)——RMySQL写数据到数据库中dbWriteTable

文章目录

  • RMySQL写数据到数据库中dbWriteTable
    • 问题:在R+RMySQL版本下执行dbWriteTable写R语言的数据框data.Frame到MySQL数据库的表中,出现如下错误:
    • 详细操作过程如下:
      • 1、连接RMySQL数据库,并创建一个R数据框
      • 2、将R数据框写入到数据库中
      • 3、解决方法如下
            • 3.1 下载的**RMariaDB**数据库
            • 下载方式:
            • 下载页面:
            • 3.2 安装RMariDB数据库
            • 3.3 修改原来的代码,然后再执行即可。

RMySQL写数据到数据库中dbWriteTable

问题:在R+RMySQL版本下执行dbWriteTable写R语言的数据框data.Frame到MySQL数据库的表中,出现如下错误:

Error in .local(conn, statement, ...) : 
  could not run statement: The used command is not allowed with this MySQL version

意思是:当前写数据命令不能再RMySQL版本上应用。

详细操作过程如下:

1、连接RMySQL数据库,并创建一个R数据框

library(DBI)
library(RMySQL)
#1、建立本地连接:获取连接信息,查看database下所有表
conn = dbConnect(MySQL(),dbname="d_sample",
                 username="root",
                 password="123456",
                 client.flag=CLIENT_MULTI_STATEMENTS)
#2、创建一个R数据库
t_demo<-data.frame(
  a=seq(1:10),
  b=letters[1:10],
  c=rnorm(10)
)
print(t_demo)

数据框的结果如下:

> print(t_demo)
    a b          c
1   1 a -2.4673372
2   2 b -1.4286452
3   3 c -0.8539637
4   4 d -0.5737034
5   5 e  0.8733247
6   6 f  0.1782032
7   7 g -0.3980611
8   8 h  0.1050986
9   9 i -0.6929084
10 10 j -1.9397270

2、将R数据框写入到数据库中

library(DBI)
library(RMySQL)
#1、建立本地连接:获取连接信息,查看database下所有表
conn = dbConnect(MySQL(),dbname="d_sample",
                 username="root",
                 password="123456",
                 client.flag=CLIENT_MULTI_STATEMENTS)
#2、创建一个R数据库
t_demo<-data.frame(
  a=seq(1:10),
  b=letters[1:10],
  c=rnorm(10)
)
print(t_demo)
#3、写数据到数据库中,数据库的表名为:t_demo1,overwrite表示覆盖原表数据;
dbWriteTable(conn, "t_demo1", t_demo,overwrite = TRUE)

#5、关闭连接
dbDisconnect(conn)

提示错误信息如下:

> dbWriteTable(conn, "t_demo1", t_demo,overwrite = TRUE)
Error in .local(conn, statement, ...) : 
  could not run statement: The used command is not allowed with this MySQL version

3、解决方法如下

我在网上找了很久,终于在【Stack Overflow】 “https://stackoverflow.com/questions/” 网上找到一点相关解决方法,但没有详细说明。于是我将其详细解决过程写了下来。

解决思路: 既然提示当前命令不支持当前版本RMySQL,那么我们就下载一个可以支持dbWriteTable函数的数据库版本来解决此问题。

3.1 下载的RMariaDB数据库
下载方式:

方式1: 在RStudio中的命令区输入命令:install.packages(“RMariaDB”)
下载完成之后,会自动保存到“红色框”的路径下。
R+MySQL数据库的学习笔记(11)——RMySQL写数据到数据库中dbWriteTable_第1张图片
方式2:直接到RMariDB页面下载,下载地址如下:

下载地址:RMariaDB https://cran.r-project.org/web/packages/RMariaDB/index.html

下载页面:

R+MySQL数据库的学习笔记(11)——RMySQL写数据到数据库中dbWriteTable_第2张图片

3.2 安装RMariDB数据库

选择Tools——install Packages——选择Browse——选择RMariaDB 1.0.6.zip文件——install——安装完毕。
R+MySQL数据库的学习笔记(11)——RMySQL写数据到数据库中dbWriteTable_第3张图片
R+MySQL数据库的学习笔记(11)——RMySQL写数据到数据库中dbWriteTable_第4张图片
出现以下内容,表示安装成功:
R+MySQL数据库的学习笔记(11)——RMySQL写数据到数据库中dbWriteTable_第5张图片

3.3 修改原来的代码,然后再执行即可。
library(DBI)
library(RMariaDB)
#1、建立本地连接:获取连接信息,查看database下所有表
conn = dbConnect(MariaDB(),dbname="d_sample",
                 username="root",
                 password="123456",
                 client.flag=CLIENT_MULTI_STATEMENTS)

#2、创建一个R数据库
t_demo<-data.frame(
  a=seq(1:10),
  b=letters[1:10],
  c=rnorm(10)
)
print(t_demo)
#3、写数据到数据库中,数据库的表名为:t_demo1,overwrite表示覆盖原表数据;
dbWriteTable(conn, "t_demo1", t_demo,overwrite = TRUE)

#5、关闭连接
dbDisconnect(conn)

2:
library(DBI)
library(RMariaDB)
conn = dbConnect(RMariaDB::MariaDB(),dbname="d_sample",
                 username="root",
                 password="123456",
                 client.flag=CLIENT_MULTI_STATEMENTS)

student = data.frame(学号=c("201507001","201507002","201507003"),
                       姓名=c("张卫健","张文静","李嘉欣"),
                       性别=c("男","女","女"),
                       出生日期=c("1996-01-20","1998-2-6","2000-10-28"),
                       民族=c("汉族","苗族","汉族"),
                       政治面貌=c("共青团员","中共党员","共青团员"))
print(student)

dbWriteTable(conn, "Rstudent", student,overwrite = TRUE)

dbDisconnect(conn)

这样写数据就成功了。
打开MySQL Workbench软件可以查看我们写入的数据表信息。
R+MySQL数据库的学习笔记(11)——RMySQL写数据到数据库中dbWriteTable_第6张图片
R+MySQL数据库的学习笔记(11)——RMySQL写数据到数据库中dbWriteTable_第7张图片

你可能感兴趣的:(MySQL数据库操作,R语言,R语言连接数据库MySQL)