bestsource

R 마크다운, SQL 코드 청크가 구문 오류를 생성합니다.

bestsource 2023. 8. 12. 10:33
반응형

R 마크다운, SQL 코드 청크가 구문 오류를 생성합니다.

목표: 저는 R에서 일부 SQL 코드 청크를 포함하는 마크다운 문서를 컴파일하려고 합니다.CREATE TABLE IF NOT EXISTS진술들.이러한 파일은 로컬 호스트의 MySQL 데이터베이스로 전송됩니다.실제로 데이터베이스를 초기화하는 역할을 해야 하며 Markdown에 있으면 데이터베이스의 구조를 설명할 수 있는 공간이 생깁니다.

문제:안타깝게도 R Markdown에서 컴파일할 때 SQL 코드가 구문 오류 [1064]를 생성하고 있습니다.그러나 MySQL Workbench에서 동일한 SQL 코드를 실행하면 제대로 실행됩니다.knitr - rDBI - RMariaDB - MySQL의 체인 어딘가에 문제가 있다고 생각하지만, 사용자 오류도 배제할 수 없습니다.

MWE는 다음과 같습니다.

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
);

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 오류입니다.

SQL 구문에 오류가 있습니다. MySQL 서버 버전에 해당하는 설명서에서 7행의 'CREATE TABLE IF NOT EXISTRS trt_counties(countyId INTO AUTO_INCREMENT NOT NUL)' 근처에서 사용할 올바른 구문을 확인하십시오.

한 번에 하나의 문만 허용됩니다.

언급URL : https://stackoverflow.com/questions/59618089/r-markdown-sql-code-chunk-generates-syntax-error

반응형