我在Android Sqlite中创建Table时尝试使用INTEGER AUTOINCREMENT . 但它显示错误 . 但它在提供INTEGER PRIMARY KEY AUTOINCREMENT的同时工作正常 .
我的要求是,带有AUTOINCREMENT的列不应该是主键 .
db.execSQL("CREATE TABLE " + Table_KOT_ITEMS_TEMP + "(" + col_Item_Name
+ " varchar(40) NOT NULL," + col_Ref_No
+ " int(11) NOT NULL DEFAULT '0'," + col_Table_No
+ " varchar(6) NOT NULL DEFAULT '0'," + col_Kot_No
+ " int(11) NOT NULL DEFAULT '0'," + col_Main_Item_Code
+ " varchar(10) NOT NULL," + col_Item_Type
+ " varchar(10) NOT NULL," + col_Item_Amount
+ " decimal(10,2) DEFAULT '0.00'," + col_Item_Qty
+ " decimal(9,3) NOT NULL DEFAULT '0.000'," + col_No_Of_Persons
+ " varchar(6) NOT NULL," + col_Dum_Unique
+ " varchar(25) NOT NULL," + col_CheckBox
+ " char(5) NOT NULL," + col_Item_Auto_ID
+ " INTEGER PRIMARY KEY AUTOINCREMENT)");
3 回答
是的,实现这一点非常困难,唯一的选择是将其作为INTEGER PRIMARY KEY AUTOINCREMENT ...
不是直接的 . 但是你可以创建一个触发器来做到这一点 .
您可以通过检查autoincr列是否为
NULL
来改进这一点,但您应该了解基本想法 .在SQLite中,
AUTOINCREMENT
列must be declared as INTEGER PRIMARY KEY .