【问题标题】:Sqlite: Create a table and fill with information only onceSqlite:创建一个表并只填写一次信息
【发布时间】:2011-08-19 03:35:16
【问题描述】:

我有一个 appcelerator Titan 项目(您无需熟悉该平台即可帮助我),我正在使用它来创建 iOS 应用程序。我想要一个数据库,其中第一次填充几行的表,然后在第一次之后单独放置。

我知道如果表不存在,您可以创建它。插入数据有类似的吗?

谢谢!

【问题讨论】:

    标签: sqlite insert appcelerator


    【解决方案1】:

    使用一些 Titanium 特定代码扩展 MPelletier 的响应,您可以在项目中执行以下操作:

    var my_db = Ti.Database.open('nameofdb');
    var my_result_set = my_db.execute('SELECT * FROM MyTable');
    var records = my_result_set.rowCount;
    

    记录变量将指示您的表中是否有数据,然后您可以采取相应的行动。

    Titanium 有几个不错的 ORM-ish 实用程序:TiStore 和 Joli 是我用过的两个。两者都受到 ActiveRecord 的启发,有助于减少与 DB 相关的代码。如果您想了解更多信息,请访问 Github!

    【讨论】:

      【解决方案2】:

      如果您愿意,可以使用 INSERT OR REPLACE,但您也可以只检查表上的行数:

      SELECT COUNT(*) FROM MyTable;
      

      然后决定输入它们。

      【讨论】:

      • 那么如果我有一个名为 MyTable 的表,上面的命令会返回行数吗?
      【解决方案3】:

      您可以通过 SQLLiteManager 或任何您想要的工具创建数据库并在其中插入数据,然后转储它。

      将您转储的文件放入您的 Titanium 项目文件夹(在 Resources 文件夹中的某个位置)。

      那么这行代码就会把.sqlite文件的内容插入到iOS db中:

      var db = Ti.Database.install('../your-db.sqlite', 'your-db-name');
      

      不要忘记 SQL 文件中的 CREATE IF NOT EXISTS 语句。

      或者如 MPelletier 所说,使用 REPLACE 而不是 INSERT。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-10-25
        • 1970-01-01
        • 2020-03-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-02-16
        • 1970-01-01
        相关资源
        最近更新 更多