使用android sqlite将数据插入到具有相同生成的唯一ID的2个表中

时间:2014-07-03 05:06:35

标签: android sqlite

我正在尝试将数据插入到表中生成唯一ID的两个表中,并使用表2中的generate unique id。

实施例: 我想将empl_no和empl_name插入到表1和表2中。在Table1中插入empl_no后,它将自动生成该行的id。需要在Table2上使用此id来插入empl_name。

Table 1
empl_id | empl_no
-----------------
1       | e00001

Table 2
empl_id | empl_name
-------------------
1       | Andy

我想到的是将empl_no插入Table1然后执行select以获取最后一行来检索empl_id。然后使用empl_id插入Table2。

这样做有好处吗?它看起来效率低下,因为每次插入数据都需要从表中select获取生成的唯一ID。

1 个答案:

答案 0 :(得分:1)

如果您在表1中将empl_id定义为INTEGER PRIMARY KEY(可选择AUTOINCREMENT,但除非您明确需要,否则最好不要使用它)然后您赢了&#39 ; t需要额外的SELECT语句。 insert()方法将返回其值。

来自SQLite documentation

  

如果表包含INTEGER PRIMARY KEY类型的列,那么   column成为ROWID的别名。然后,您可以访问ROWID   使用四个不同名称中的任何一个,描述原来的三个名字   以上或INTEGER PRIMARY KEY列的名称。所有这些   名称是彼此的别名,并且在任何名称中都同样有效   上下文。

来自Android文档:

  

public long insert (String table, String nullColumnHack, ContentValues values)   返回新插入行的行ID ,如果发生错误,则返回-1。