当前位置: 首页 > 面试题库 >

如何在每个SQLite行中插入唯一的ID?

权弘新
2023-03-14
问题内容

我有以下SQLite代码。如何在每行中插入自动生成的唯一ID?

    tx.executeSql('DROP TABLE IF EXISTS ENTRIES');
    tx.executeSql('CREATE TABLE IF NOT EXISTS ENTRIES (id unique, data)');

    tx.executeSql('INSERT INTO ENTRIES (id, data) VALUES (1, "First row")');
    tx.executeSql('INSERT INTO ENTRIES (id, data) VALUES (2, "Second row")');

问题答案:

您可以将其定义id为自动递增列:

create table entries (id integer primary key autoincrement, data)

正如MichaelDorner指出的那样,SQLite文档说an可以integer primary key做同样的事情,并且速度稍快。该类型的列是其别名rowid,其行为类似于自动增量列。

create table entries (id integer primary key, data)

此行为是隐式的,可能会使经验不足的SQLite开发人员措手不及。



 类似资料:
  • 问题内容: 这似乎很简单:我想在SQLite表中复制一行: 如果没有显式的唯一列声明,则该语句将起作用,但是将声明表的第一列。有什么方法可以创建一个简单的语句,而上面的语句在不知道表模式的情况下起作用(除了第一列)? 问题答案: 好吧,由于无法按照我想要的方式执行此操作,因此我使用了隐式行ID,该ID与我显式定义的rowId列的名称相同,因此现在可以使用问题中使用的查询了。 ,它将使用新的rowI

  • 我需要在表中插入所有单元格的唯一数据。我的表有3列,如果所有3个单元格的值相同,我需要忽略insert。 例如,我有一个表:|column_1 | column_2 | column_3| 以及此表的值: |val 1|val 2|val 3| |val 1|val 2|val 5| |val 1|val 2|val 3| |val 1|val 2|val 3| 所以我只需要插入值1和2,因为3和

  • 问题内容: 在MySQL中,我会使用 但这会导致SQLite错误。SQLite的正确语法是什么? 问题答案: 在此之前,已经回答了这一问题:是否可以一次在SQLite数据库中插入多行? 要回答您对OMG Ponies的评论,请回答: 从3.7.11版本开始,SQLite确实支持多行插入。理查德·希普(Richard Hipp)评论:

  • 问题内容: 我正在尝试在SQLite(最新版本)表中插入多行,但抛出错误 从这里得到的想法,这是我的SQL查询: 但它抛出 这是我的表结构 我的查询有问题吗? 任何帮助,将不胜感激。 TIA 问题答案: 由于提到了最新版本的SQLite,因此应使用多值插入(自3.7.11版以来受SQLite支持),如下所示: 这是更短,更快,更不容易出错的方法。其他一些数据库(至少MySQL和PostgreSQL

  • 我如何让IntelliJ IDEA在文件的每一端插入一个新行,这样GitHub就不会抱怨例如?