R Markdown,SQL 代码块生成语法错误

R Markdown, SQL code chunk generates Syntax Error

目标: 我正在尝试在 R 中编译一个降价文档,其中包含一些带有 CREATE TABLE IF NOT EXISTS 语句的 SQL 代码块。这些被发送到本地主机上的 MySQL 数据库。实际上,它们应该用于初始化数据库,并且在 Markdown 中为我提供了解释该数据库结构的空间。

问题: 不幸的是,SQL 代码在 R Markdown 中编译时生成语法错误 [1064]。但是,如果我 运行 SQL MySQL Workbench 中的相同代码,它会正确执行。我相信问题出在 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"))}
```

尽管如此,我在尝试使用 RStudio 的 SQL 集成执行代码时遇到了这些语法错误。

编辑。这是 SQL 错误:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'CREATE TABLE IF NOT EXISTS rt_counties ( countyId INTO AUTO_INCREMENT NOT NUL' at line 7 [1064]

一次只允许一个语句。