【问题标题】:Android SQLite, some SQL basicsAndroid SQLite,一些 SQL 基础知识
【发布时间】:2025-06-19 18:30:02
【问题描述】:

我正在关注本教程:http://www.codeproject.com/KB/android/AndroidSQLite.aspx

我一定是在想这些 SQLite 的东西(过去我的域服务器会自动初始化我请求的数据库,并且我可以在需要时进行查询。永远不要从头开始组合)

我对他们的 onCreate 函数有一些疑问。我从不记得使用过 我的 SQL 中的CREATE TRIGGER 命令

我只需要创建一个包含 2 或 3 列的表(如果您计算主键)

我应该能够做到 db.execSQL("CREATE TABLE" + tableName +"("+colID+"INTEGER PRIMARY KEY,"+columnName+"TEXT)");

正确吗?

我需要一个“触发器”和一个“视图”吗?

【问题讨论】:

  • 创建表不需要触发器和视图。

标签: android database sqlite initialization oncreate


【解决方案1】:

如果您只需要一个地方来存储一些数据 - 那么 Table 就足够了。但是,如果您的逻辑更复杂,那么您将需要额外的东西。

另请注意,SQLite 不支持某些触发器:Info from here

【讨论】:

    【解决方案2】:

    您无需创建 TRIGGER。除非它是必需的。这是我在我的一个项目中实施的方式。希望对您有所帮助。

    https://github.com/gopalB/FeedReader/blob/master/src/com/feedReader/provider/FeedDB.java

    【讨论】:

    • 如果你能评价答案会很棒:)
    【解决方案3】:

    如果您不需要TriggerView,则无需创建它们。看来本教程只是在解释您可以做的一些事情。

    【讨论】:

      【解决方案4】:

      如果 SQLite TRIGGERVIEW 与它们在 MySQL 中的用途相似,那么不,它们不一定适用于您要完成的任务。

      VIEWs 在您有复杂查询时非常有用(例如,当使用 JOINs 连接来自多个表的数据时)。

      TRIGGERSs 是在您修改表时运行的条件。 (比如使用UPDATE,或INSERT

      【讨论】:

        【解决方案5】:

        正如所写,由于缺少空格,您的 create 语句将不起作用。试试:

        db.execSQL("CREATE TABLE " + tableName +" (" + colID + " INTEGER PRIMARY KEY, " + columnName + " TEXT)");
        

        【讨论】:

        • 是的,我对语法很谨慎,但我主要是在模仿