我正在尝试将数据插入到表中生成唯一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。
答案 0 :(得分:1)
如果您在表1中将empl_id
定义为INTEGER PRIMARY KEY
(可选择AUTOINCREMENT
,但除非您明确需要,否则最好不要使用它)然后您赢了&#39 ; t需要额外的SELECT语句。 insert()
方法将返回其值。
如果表包含INTEGER PRIMARY KEY类型的列,那么 column成为ROWID的别名。然后,您可以访问ROWID 使用四个不同名称中的任何一个,描述原来的三个名字 以上或INTEGER PRIMARY KEY列的名称。所有这些 名称是彼此的别名,并且在任何名称中都同样有效 上下文。
来自Android文档:
public long insert (String table, String nullColumnHack, ContentValues values)
返回新插入行的行ID ,如果发生错误,则返回-1。