Mysql R标记,SQL代码块生成语法错误
目标:我正在尝试用R编译一个降价文档,其中包含一些SQL代码块和Mysql R标记,SQL代码块生成语法错误,mysql,mariadb,r-markdown,knitr,r-dbi,Mysql,Mariadb,R Markdown,Knitr,R Dbi,目标:我正在尝试用R编译一个降价文档,其中包含一些SQL代码块和CREATE TABLE IF NOT EXISTS语句。它们被发送到本地主机上的MySQL数据库。实际上,它们应该用于初始化一个数据库,处于降价状态给了我解释该数据库结构的空间 问题:不幸的是,在R标记中编译时,SQL代码正在生成语法错误[1064]。但是,如果我在MySQL Workbench中运行相同的SQL代码,它将正确执行。我相信这个问题存在于knitr-rDBI-RMariaDB-MySQL的链条中,尽管我也不能排除用户
CREATE TABLE IF NOT EXISTS
语句。它们被发送到本地主机上的MySQL数据库。实际上,它们应该用于初始化一个数据库,处于降价状态给了我解释该数据库结构的空间
问题:不幸的是,在R标记中编译时,SQL代码正在生成语法错误[1064]。但是,如果我在MySQL Workbench中运行相同的SQL代码,它将正确执行。我相信这个问题存在于knitr-rDBI-RMariaDB-MySQL的链条中,尽管我也不能排除用户错误
这是我的MWE:
1。SQL
在文件SQL/mysqlcode.SQL
中,我有以下代码:
CREATE TABLE IF NOT EXISTS rt_states (
stateId INT AUTO_INCREMENT NOT NULL,
stateName VARCHAR(32) NOT NULL,
PRIMARY KEY (stateId)
);
CREATE TABLE IF NOT EXISTS rt_counties (
countyId INT AUTO_INCREMENT NOT NULL,
countyName VARCHAR(75),
stateId INT,
PRIMARY KEY (countyId),
FOREIGN KEY (stateId)
REFERENCES rt_states (stateId)
ON DELETE RESTRICT ON UPDATE CASCADE
);
2。R降价
```{r dbconn}
library(DBI)
library(RMariaDB)
library(here)
db <- DBI::dbConnect(
drv = RMariaDB::MariaDB(),
dbname = "my_db",
host = "localhost",
username = "my_username",
password = "my_password"
)
knitr::opts_chunk$set(connection = "db")
```
```{sql my_sql_chunk, code = readLines(here("SQL/mysqlcode.sql"))}
```
`{r dbconn}
图书馆(DBI)
图书馆(RMariaDB)
图书馆(这里)
db一次只允许一条语句。是的,我现在明白了。这是为了避免SQL注入。我应该在发帖前看到的。谢谢你的回复!