Для столбца, который должен быть назван согласно COLUMN_TS_MILIS , пропущен пробел между именем столбца и типом столбца, и, следовательно, имя столбца является объединением имени столбца и типа столбца.Таким образом, предполагая, что COLUMN_TS_MILIS преобразуется в миллис, QL будет: -
`CREATE TABLE ......,millistimestamp integer default (cast(strftime('%s', 'now') as int))`
вместо
`CREATE TABLE ......,millis timestamp integer default (cast(strftime('%s', 'now') as int))`
Кроме того, вы указали два типа, отметку времени и целое число, это не будетвопрос SQLIite мудрый, но может привести к путанице.
Как таковой, вы, вероятно, просто хотите
`CREATE TABLE ......,millis integer default (cast(strftime('%s', 'now') as int))`
Как таковой, вы, вероятно, хотите использовать: -
String query = "CREATE TABLE IF NOT EXISTS " + TABLE_NAME + "(" +
COLUMN_ID + " INTEGER PRIMARY KEY, " +
COLUMN_PRODUCT + " TEXT, " +
COLUMN_PRICE + " TEXT, " +
COLUMN_TS + " TIMESTAMP DEFAULT CURRENT_TIMESTAMP," +
COLUMN_TS_MILIS + " INTEGER DEFAULT (cast(strftime('%s', 'now') as int))" +
");";
- Примечание AUTOINCREMENT был удален, поскольку он почти наверняка вам не нужен, так как он имеет накладные расходы .
Для реализации изменения вам потребуетсябросить стол, как он есть.Самый простой способ сделать это: - *
- удалить данные приложения или
- удалить приложение
, а затем перезапустить приложение (при условиичто существующие, если таковые имеются, данные могут быть потеряны).