1

問題の説明

私は2つのテーブルを保持しているSQLiteデータベースを持っています。最初のテーブルCompaniesIDは、その会社に固有Nameの会社、会社、WebsitesおよびEmails. すべての会社は複数のアドレスを持つことができるので、2 番目のテーブルを作成Addressesし、この場合は一意ではない会社 ID とその他の情報をそこに保持します。

例えば:

Companiesテーブルにこのようなレコードがある場合

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

テーブルには、Addressesこのようなレコードを含めることができます

7785413 0 アドレス 1 +64841518549 +9985212848

7785413 1 アドレス 2 +64841542359 +9985212848

2 番目のテーブルには一意の列がないため、レコードを更新する方法を知りたいですか? 最初のケースでは、私は電話します

database.insertOrThrow(DATABASE_TABLE_NAME, null, values);

関数であり、ID が同じ関数である場合、例外がスローされ、それをキャッチしてレコードを更新します。一意の列がなく、関数が例外をスローしないため、2 番目のテーブルで同じことを行うことはできません。それを行う最良の方法はどれですか?

テーブル

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 に答える