【问题标题】:Importing SQL file with foreign key constraints导入带有外键约束的 SQL 文件
【发布时间】:2014-01-02 04:27:21
【问题描述】:

我创建了一个 SQL 文件,该文件在多个表中具有外键约束。

当我在终端中输入以下行时:

sqlite3 language_application.db < language_application.sql

我收到以下错误:

Error: near line 13: near "native_lang": syntax error
Error: near line 24: near "user_id_no": syntax error
Error: near line 34: near "request_id": syntax error

似乎只有具有外键约束的表给我带来了问题。

我知道Sqlite3默认禁用外键支持,但不知道如何启用它们并同时将sql文件导入数据库。我试过做

PRAGMA foreign_keys = ON;

在导入数据之前,但是除了我在这个问题开头写的第一行之外,我不知道如何在 sqlite3 运行时导入数据。

我该怎么做呢?

【问题讨论】:

  • 该 SQL 文件的前十四行是什么?
  • PRAGMA foreign_keys 不影响语法解析规则,只影响是否强制执行外键。因此,PRAGMA 无法修复语法错误。请发布 SQL 的问题部分。
  • 是的,这是我的语法错误,我已经修复了。我没有用括号括住我的外键约束。但是 .read 解决方案仍然很有帮助。

标签: sql sqlite import foreign-keys


【解决方案1】:

您可以先让sqlite运行,然后在以句点开头的指令中,有一个.read FILENAME,您可以使用它来导入写在单独文本文件中的sql语句。可以通过在 sqlite3 控制台中键入 .help 来访问整个指令列表。

【讨论】:

  • 效果很好!感谢您的帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-01-30
  • 2019-01-14
  • 1970-01-01
  • 2015-04-24
  • 1970-01-01
  • 2015-04-29
  • 1970-01-01
相关资源
最近更新 更多