database - db:运行sql模式(包含多条语句)
问题描述
我的项目有一个schema.sql
包含CREATE TABLE
设置我的 sqlite3 数据库的语句,但我似乎无法弄清楚如何从 Racket 运行这个文件。我收到以下错误消息:
; query-exec: multiple statements given
; value: "CREATE TABLE IF NOT EXISTS pet (\n id INTEGER PRIMARY KEY,\n name TEXT NOT NULL,\n kind TEXT NOT NULL,\n owner_id REFERENCES owner(id) NOT NULL\n);\n\nCREATE TABLE IF NOT EXISTS owner (\n id INTEGER PRIMARY KEY,\n name TEXT NOT NULL\n);\n"
; Context:
; /usr/share/racket/collects/db/private/sqlite3/connection.rkt:208:4 prepare1* method in connection%
; /usr/share/racket/collects/db/private/sqlite3/connection.rkt:137:4 check-statement method in connection%
; /usr/share/racket/collects/db/private/sqlite3/connection.rkt:73:4 query1 method in connection%
; /usr/share/racket/collects/db/private/generic/functions.rkt:217:0 query-exec
; /home/winston/code/example-db-racket/main.rkt:1:1 [running body]
; [Due to errors, REPL is just module language, requires, and stub definitions]
有没有办法用db
包运行多个语句?
主.rkt
#lang racket
(require db)
(define database
(sqlite3-connect #:database "database.sqlite3" #:mode 'create))
(define schema
(call-with-input-file "schema.sql" port->string))
(query-exec database schema)
架构.sql
CREATE TABLE IF NOT EXISTS pet (
id INTEGER PRIMARY KEY,
name TEXT NOT NULL,
kind TEXT NOT NULL,
owner_id REFERENCES owner(id) NOT NULL
);
CREATE TABLE IF NOT EXISTS owner (
id INTEGER PRIMARY KEY,
name TEXT NOT NULL
);
解决方案
推荐阅读
- sql-update - 尝试从 Power BI 中更新 SQL 表
- mobile - 使用文本单击按钮出现在按钮上
- r - 如何在具有多个变量的 ggplot 图中绘制图例?
- json - 如何在 Python3 中从 json 文件中提取坐标
- uml - 如何在用例图中描绘可见性
- python - 如何使用 PyODBC 插入和更新?
- python - Pyinstaller/Pyarmor 索引错误
- javascript - discord.js 中的 GuildMemberManager.resolve() 和 Guild.member() 有区别吗?
- sql - Postgres 约束参考
- google-apps-script - 谷歌脚本的数据验证(下拉)和 Vlookup