【发布时间】:2014-11-24 03:16:45
【问题描述】:
有没有办法创建没有 AUTOINCREMENT 列的表?
我已经尝试过此链接中的解决方案,但它对我不起作用。 prevent autoincrementing integer primary key?
public static final String KEY_ID = "ROW_ID";
public static final String BOOK = "books";
public static final String CAR = "cars";
private static final String BOOK_CAR_TABLE = "BOOK_CAR_Table";
private static final String[] ALL_KEYS = new String[] {KEY_ID, BOOK, CAR};
private static final String BOOK_CAR_CREATE =
"CREATE TABLE " + BOOK_CAR_TABLE + "("+
KEY_ID + " INTEGER PRIMARY KEY," +
BOOK + " TEXT," +
CAR + " TEXT)";
我了解当我添加 INTEGER PRIMARY KEY 时,它会将 KEY_ID 转换为 AUTOINCREMENT 列。
public static final String KEY_ID = "ROW_ID";
public static final String BOOK = "books";
public static final String CAR = "cars";
private static final String BOOK_CAR_TABLE = "BOOK_CAR_Table";
private static final String[] ALL_KEYS = new String[] {KEY_ID, BOOK, CAR};
private static final String BOOK_CAR_CREATE =
"CREATE TABLE " + BOOK_CAR_TABLE + "("+
KEY_ID + " INTEGER," +
BOOK + " TEXT," +
CAR + " TEXT)";
AUTOINCREMENT rowid 列是自己创建的,它是怎么发生的?????
我不想要这个 AUTOINCREMENT 列。
如何防止这种情况发生?
谢谢
编辑:添加代码
private static final String BOOK_CAR_CREATE =
"CREATE TABLE " + BOOK_CAR_TABLE + "("+
KEY_ID + " INTEGER," +
BOOK + " TEXT," +
CAR + " TEXT) WITHOUT ROWID";
我试过了,它是强制关闭的。我猜是因为 SQLite 版本?
【问题讨论】:
-
这是一个特性,而不是一个错误
标签: mysql database sqlite android-sqlite auto-increment