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

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”)
下载完成之后,会自动保存到“红色框”的路径下。
在这里插入图片描述
方式2:直接到RMariDB页面下载,下载地址如下:

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

下载页面:

在这里插入图片描述

3.2 安装RMariDB数据库

选择Tools——install Packages——选择Browse——选择RMariaDB 1.0.6.zip文件——install——安装完毕。
在这里插入图片描述
在这里插入图片描述
出现以下内容,表示安装成功:
在这里插入图片描述

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软件可以查看我们写入的数据表信息。
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值