gpt4 book ai didi

android - 将主键与 WithoutRowID 一起使用

转载 作者:行者123 更新时间:2023-12-05 00:21:21 26 4
gpt4 key购买 nike

我试图从 SQLite 中挤出一点点性能,但我遇到了一个似乎很奇怪的问题,因为 SQLite 中的功能似乎毫无意义。

举个例子:

CREATE TABLE "A_TEST" ( "ID" INTEGER PRIMARY KEY ,  "X" TEXT NULL) WITHOUT ROWID

然后尝试插入一条记录:
Insert into A_TEST (X) VALUES('Test String')

您将收到“NOT NULL 约束失败”的错误

这是否意味着,使用 WithoutRowID ,插入时我必须指定自己的主键值吗?

我认为 WithoutRowID的原因毫无意义的是:
  • 您必须指定自己的主键值,这会使任何批量插入选择语句变得多余,因为我必须在插入时在主键中指定自己的值....
  • 实际上,如果我不使用WithoutRowID,我将拥有2 个主键,因为SQLite 管理它自己的RowID 以及我自己的主键值。在 1.7GB 的数据库上,使用 WithoutRowID 将文件中的索引大小减少到仅 1.3GB,因此 400MB 的差异是相当大的节省。

  • 请告诉我,我不必提供我自己的主键 ID,如果它是 INTEGER,它实际上会针对主键提供唯一 ID .

    最佳答案

    我刚刚发现 SQLite 4 是可用的——而且它看起来(从网页的初始阅读)主键确实是没有 ROWID 的真正主键!呜呜呜。
    http://sqlite.org/src4/doc/trunk/www/design.wiki

    关于android - 将主键与 WithoutRowID 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49963559/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com