Java 如何使非主键列自动递增
我将sqlite与java JDBC一起使用,并创建了下表:Java 如何使非主键列自动递增,java,sqlite,jdbc,Java,Sqlite,Jdbc,我将sqlite与java JDBC一起使用,并创建了下表: private final String sqlTableNode = "CREATE TABLE "+this.TABLE_NODE+ " ( "+this.NODE_TABLE_ID_COL+" INTEGER, " + this.NODE_TABLE_NODE_ID_COL+" TEXT NOT NULL, " + this.NODE_TABLE_LAT_COL+" TEXT NO
private final String sqlTableNode = "CREATE TABLE "+this.TABLE_NODE+
" ( "+this.NODE_TABLE_ID_COL+" INTEGER, " +
this.NODE_TABLE_NODE_ID_COL+" TEXT NOT NULL, " +
this.NODE_TABLE_LAT_COL+" TEXT NOT NULL, " +
this.NODE_TABLE_LNG_COL+" TEXT NOT NULL, " +
"PRIMARY KEY ("+this.NODE_TABLE_LAT_COL+", "+this.NODE_TABLE_LNG_COL+") );";
我的问题是,如何使第一列“this.NODE\u TABLE\u PK\u COL”在不是主键时自动递增???如图所示,自动递增仅适用于主键。如图所示,自动递增仅适用于主键。不幸的是,这是不可能的。页面底部显示: 由于AUTOINCREMENT关键字会更改ROWID选择算法的行为,因此不允许在没有ROWID的表或除INTEGER主键以外的任何表列上使用AUTOINCREMENT。任何试图在没有ROWID的表上或在整型主键列以外的列上使用AUTOINCREMENT的操作都会导致错误
不幸的是,这是不可能的。页面底部显示: 由于AUTOINCREMENT关键字会更改ROWID选择算法的行为,因此不允许在没有ROWID的表或除INTEGER主键以外的任何表列上使用AUTOINCREMENT。任何试图在没有ROWID的表上或在整型主键列以外的列上使用AUTOINCREMENT的操作都会导致错误 @拉梅克: 不,你不能。您可以在此处找到文档: 它明确指出: 不允许在没有ROWID的表或除INTEGER主键以外的任何表列上自动递增。任何试图在没有ROWID的表上或在整型主键列以外的列上使用AUTOINCREMENT的操作都会导致错误 如果我理解您的需求,那么在这个场景中您可以做的是,在 此.NODE\u表\u ID\u列 因为它是整数,所以它符合主键的条件 并在以下位置创建唯一密钥: 唯一键(“+this.NODE\u TABLE\u ID\u COL+”、“+this.NODE\u TABLE\u LAT\u COL+”、“+this.NODE\u TABLE\u LNG\u COL+”) @拉梅克: 不,你不能。您可以在此处找到文档: 它明确指出: 不允许在没有ROWID的表或除INTEGER主键以外的任何表列上自动递增。任何试图在没有ROWID的表上或在整型主键列以外的列上使用AUTOINCREMENT的操作都会导致错误 如果我理解您的需求,那么在这个场景中您可以做的是,在 此.NODE\u表\u ID\u列 因为它是整数,所以它符合主键的条件 并在以下位置创建唯一密钥: 唯一键(“+this.NODE\u TABLE\u ID\u COL+”、“+this.NODE\u TABLE\u LAT\u COL+”、“+this.NODE\u TABLE\u LNG\u COL+”) 该栏目名称中的“主键”是什么意思?该栏目名称中的“主键”是什么意思?