1

问题描述

我有 SQLite 数据库,其中我保留了两个表,在第一个表中,Companies我保留了公司ID,该公司对于该公司来说是独一无二的NameWebsites并且Emails. 每家公司都可以有多个地址,因此我创建了第二个表Addresses并保留了在这种情况下不是唯一的公司 ID 和其他信息。

例如:

如果在Companies表中我有这样的记录

7785413 MyComp http://www.mycomp.com mycomp@email.com

Addresses表中我可以有这样的记录

7785413 0 地址1 +64841518549 +9985212848

7785413 1 地址2 +64841542359 +9985212848

由于我的第二个表中没有唯一列,我想知道如何更新记录?在第一种情况下,我打电话

database.insertOrThrow(DATABASE_TABLE_NAME, null, values);

函数,如果我的 ID 相同,函数会引发异常,我会捕获它并更新记录。我不能在第二个表中做同样的事情,因为没有唯一的列并且函数不会抛出异常。这是最好的方法吗?

CREATE TABLE Companies (ID TEXT UNIQUE, Name TEXT, Websites TEXT, Emails TEXT)

CREATE TABLE Addresses (ID TEXT, Position NUMERIC, Address TEXT, Tel TEXT, Mob TEXT)

4

1 回答 1

3

您需要指定主键作为创建表的约束。

CREATE TABLE Addresses(ID TEXT, Position NUMERIC, Address TEXT, Tel TEXT, Mob TEXT, PRIMARY KEY (ID , Position ));

于 2013-04-10T18:19:59.100 回答