SQLite数据库更新

时间:2013-04-10 18:11:20

标签: java android database sqlite

问题描述

我有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)

1 个答案:

答案 0 :(得分:3)

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

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