Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql R标记,SQL代码块生成语法错误_Mysql_Mariadb_R Markdown_Knitr_R Dbi - Fatal编程技术网

Mysql 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的链条中,尽管我也不能排除用户

目标:我正在尝试用R编译一个降价文档,其中包含一些SQL代码块和
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注入。我应该在发帖前看到的。谢谢你的回复!