2014-01-16 56 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约束外,它不能使用。