2014-01-16 54 views
1

我正在使用sqllite數據庫的android應用程序。在我的桌上我需要一個獨特的專欄。但有些時候,這個有唯一性的列會插入空值。相反,我需要在此列中插入自動增量值。獨特列自動增量sqllite

請在表格腳本中給出一個解決方案,以生成一個支持unique和autoincrement的列的表格。

回答

3

就像在SQL查詢如下:

CREATE TABLE Persons 
(ID int IDENTITY(1,1) PRIMARY KEY, 
LastName varchar(255) NOT NULL, 
FirstName varchar(255), 
Address varchar(255), 
City varchar(255), 
PRIMARY KEY (ID)) 

更多信息:MS SQL Server使用IDENTITY keyword執行auto-increment功能。

和SQLite像下面查詢:

CREATE TABLE failed_banks(id integer primary key, name text, city text, state text, zip integer, acquired_by text, close_date date, updated_date date); 

更多信息:A柱在SQLite聲明INTEGER PRIMARY KEYauto-increment

+0

但是我在哪裏可以在這個表格腳本中使用唯一? – Arun

+1

@Arun「PRIMARY KEY」定義唯一性。這就是它 –

+0

行...我的要求是也使用插入或替換到獨特的列TABLE ...將工作? – Arun

0

如果您需要一個可以插入和更新的列,並且該列仍然具有唯一性,那麼您必須以這種方式實現它。

首先讓該列爲UNIQUE,然後在插入的情況下確保您有一些機制爲該列添加唯一值。在更新和插入的情況下,您需要捕獲唯一值異常,並確保在異常情況下采取適當的措施。

你可以採取一些方法:

如果您需要唯一的整數,然後在插入的時候總是去最大值在列,並添加1插入新的價值。在更新整數值的情況下,您需要通過首先爲該整數提取值來確認該值不存在,然後在未添加的情況下進行更新。如果有價值,那麼你需要有一個邏輯來獲得另一個獨特的價值。

如果列的值不是整數或數字,而是文本,則必須首先檢查存在並更新/插入,以便在插入和更新中更好地處理它。

0

排序回答:除了它是主鍵字段外,你不能。

如果它是UNIQUENOT NULL自動遞增,那麼除了將它作爲主鍵以外,別無選擇。

CREATE TABLE table_name (your_field_name INTEGER PRIMARY KEY, ...) 

INTEGER PRIMARY KEY這裏的東西使它成爲主鍵,自動遞增。

Sqlite數據庫有一個關鍵字AUTOINCREMENT,除了關聯到PRIMARY KEY約束外,它不能使用。