Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/394.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在ANDROID SQLite中,是否可以在不将其设置为主键的情况下使用AUTOINCREMENT_Java_Sqlite - Fatal编程技术网

Java 在ANDROID SQLite中,是否可以在不将其设置为主键的情况下使用AUTOINCREMENT

Java 在ANDROID SQLite中,是否可以在不将其设置为主键的情况下使用AUTOINCREMENT,java,sqlite,Java,Sqlite,在Android Sqlite中创建表时,我尝试过使用INTEGER AUTOINCREMENT。但它显示出错误。 但它在提供整数主键自动递增时工作良好 我的要求是,带有AUTOINCREMENT的列不应该是主键 db.execSQL("CREATE TABLE " + Table_KOT_ITEMS_TEMP + "(" + col_Item_Name + " varchar(40) NOT NULL," + col_Ref_No

在Android Sqlite中创建表时,我尝试过使用INTEGER 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)");

在SQLite中,一种自动递增列。

不是直接递增的。但是你可以创建一个触发器来实现这一点

-创建表 创建表testtbl id整数主键, 自动增量默认为空, 其他行文本-可能更多 ; -创建辅助表 创建表序列辅助程序 名称文本主键COLLATE NOCASE, seq整数默认值1 ; -填写起始号码 在序列中插入辅助值“testtbl”,1; -创建触发器 为每行开始在testtbl上插入后创建触发器autoincr\u testtbl 更新testtbl集 autoincr=从序列中选择seq\u helper,其中name='testtbl' 其中rowid=new.rowid; 更新序列_helper SET seq=seq+1,其中name='testtbl'; 终止
您可能可以通过检查autoincr列是否为空来改进这一点,但您应该了解基本的想法。

是的,实现这一点非常困难,唯一的选择是将其作为整型主键自动递增…

是的,您可以使用AUTOINCREMENT生成列,而列不必是主键。不,您不能。它显示错误它显示什么错误?android.database.sqlite.SQLiteException:近自动增量:语法错误:,编译时:创建表KOT_Items_Temp002Item_Name varchar40 NOT NULL,Ref_No int11 NOT NULL默认值'0',表_No varchar6 NOT NULL默认值'0',KOT_No int11 NOT NULL默认值'0',Main_Item_Code varchar10 NOT NULL,Item_Item_Type varchar10不为空,Item_Amount decimal10,2默认值为“0.00”,Item_数量decimal9,3不为空默认值为“0.000”,No_Of_Persons varchar6不为空,col_Dum_Unique varchar25不为空,复选框char5不为空,Item_Auto_ID整数自动递增请将错误消息直接放在问题正文中,它使以后的参考更容易。也许我应该采用表中的命名约定。@user2746120正如我在回答中所写的,这是可能的,但不是很好。这个答案恰恰相反。