我有SQLite数据库,其中我保留了两个表,在第一个表Companies
中,我保留公司ID
,该公司对于该公司Name
是唯一的,Websites
}和Emails
。每个公司都可以拥有多个地址,因此我创建了第二个表Addresses
并保留了公司ID,在这种情况下该公司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)
答案 0 :(得分:3)
您需要将主键指定为表创建的约束。
CREATE TABLE Addresses(ID TEXT, Position NUMERIC, Address TEXT, Tel TEXT, Mob TEXT, PRIMARY KEY (ID , Position ));