【问题标题】:Create sqlite3 database at prompt在提示符下创建 sqlite3 数据库
【发布时间】:2025-12-27 10:40:12
【问题描述】:

我尝试使用以下命令在提示符下创建数据库文件,但它们都不起作用。

$ sqlite3 test.db
sqlite3 test.db
test.db

最后是否需要分号,还是使用 sqlite3 提示创建数据库文件有那么难?

编辑:

当我启动 sqlite3 提示时,我得到

SQLite version 3.6.22
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite>

当我输入“sqlite3 test.db”时,

SQLite version 3.6.22
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> sqlite3 test.db
   ...>

test.db 文件应该在磁盘上的什么位置?

【问题讨论】:

  • 当你输入 sqlite3 test.db 时,它应该在磁盘上创建数据库并为你提供一个 REPL 环境来直接在数据库上执行查询 - 它会做这些吗?
  • 快速解决方案,以管理员身份登录或运行控制台,感谢@kns

标签: sqlite


【解决方案1】:

如果您想要一个空白的 .db 文件,只需使用:

touch stuff.db

【讨论】:

    【解决方案2】:

    我认为问题实际上可能是在您执行诸如 CREATE TABLE 之类的操作之前,该文件似乎没有在磁盘上创建。

    我的行动:

    C:\path\to\sqlite3.exe test.db
    SQLite version 3.7.13 2012-06-11 02:05:22
    Enter ".help" for instructions
    Enter SQL statements terminated with a ";"
    sqlite> .quit
    

    没有创建文件。

    然后:

    C:\path\to\sqlite3.exe test.db
    
    SQLite version 3.7.13 2012-06-11 02:05:22
    Enter ".help" for instructions
    Enter SQL statements terminated with a ";"
    sqlite> create table t1(t1key integer);
    sqlite> .quit
    

    文件出现了!

    【讨论】:

      【解决方案3】:

      对于未来的读者,这是来自 SQLite.org 网站,对我有用:

      SQLite version 3.8.5 2014-05-29 12:36:14
      Enter ".help" for usage hints.
      Connected to a transient in-memory database.
      Use ".open FILENAME" to reopen on a persistent database.
      sqlite> .open ex1.db
      sqlite>
      

      上面的例子导致名为“ex1.db”的数据库文件被打开和使用,如果它以前不存在,则创建它。您可能希望使用完整路径名来确保文件位于您认为它所在的目录中。使用正斜杠作为目录分隔符。换句话说,使用“c:/work/ex1.db”,而不是“c:\work\ex1.db”。

      访问http://www.sqlite.org/cli.html了解更多详情。

      【讨论】:

        【解决方案4】:

        希望这会有所帮助..

        1. 转到命令提示符
        2. 键入 cd \(按回车键)
        3. cd sqlite(按回车键)
        4. sqlite3 mydb.db(按回车键)
        5. .databases(按回车键)

        【讨论】:

          【解决方案5】:

          这很奇怪,只需输入

          sqlite3 test.db
          

          应该创建它为我做的 sqlite 数据库,它是否显示任何错误?

          当它使用该命令时,我得到以下输出

          $ sqlite3 test.db
          SQLite version 3.6.12
          Enter ".help" for instructions
          Enter SQL statements terminated with a ";"
          sqlite> 
          

          sqlite命令行界面是什么

          为了响应您的编辑,您需要从命令行输入 sqlite3 test.db,而不是在 sqlite 提示符内。

          当您在命令提示符中键入它时,它将在您正在工作的目录中创建数据库并打开 sqlite 命令提示符。

          【讨论】:

            【解决方案6】:

            我遇到了同样的问题,然后我以管理员身份运行权限登录到命令提示符,问题就消失了。 希望这对某人有所帮助。

            【讨论】:

              【解决方案7】:

              你所拥有的是不正确的:

              SQLite version 3.6.22
              Enter ".help" for instructions
              Enter SQL statements terminated with a ";"
              sqlite> sqlite3 test.db
              ...>
              

              特别是这行:sqlite> sqlite3 test.db。它也与您的陈述不符:当我输入“sqlite3 test.db”时,

              命令应该如下:

              sqlite3 test.db
              

              这将为您提供以下输出:

              SQLite version 3.20.0 2017-08-01 13:24:15
              Enter ".help" for usage hints.
              sqlite>
              

              在此之后,您必须输入 .databases,它将显示完整路径 您的文件,然后键入 .quit 退出此提示。如果你不做 至少 .database 命令不会创建文件。

              文件将在您输入的目录中创建 命令。

              这清楚地显示在这里:sqlite tutoriaspoint

              希望这会有所帮助。

              【讨论】:

                【解决方案8】:

                您可以使用 Linux 创建 SQLite 数据库文件:touch db_name.db
                如果要执行创建表等命令,则必须先打开数据库文件
                使用:.open db_name.db

                【讨论】:

                  【解决方案9】:

                  我也观察到了同样的情况。 当我输入sqlite3 test.db 时,我进入了 sqlite3 提示符。 然后使用命令.databases 检查数据库。雅虎!!它显示了 test.db 并且在目录中我可以看到 test.db 文件。

                  我认为只有在我们对新的数据库文件进行任何操作后才能看到 db 文件。 (不确定)

                  【讨论】:

                    【解决方案10】:

                    听起来您的环境变量尚未设置为使用 SQLite3。现在我不确定你的操作系统,但这里是如何在 WinXP 下设置它:

                     - Start -> Right-click 'My Computer'
                     - Select 'Properties'
                     - Select the 'Advanced' tab
                     - Click 'Environment Variables'
                     - (Under 'System Variables') Select 'Path'
                     - Click 'Edit'
                     - (Under 'Variable Value') Go to the end of the line and enter the path to your sqlite3.exe (minus sqlite3.exe) For example: C:\bin\sqlite3\;
                    

                    就是这样!但请记住,“变量值”下的每个路径都用分号分隔,因此请确保在新路径之前有一个。

                    【讨论】: