Я полагаю, что вы можете основывать то, что вы хотите, на следующем, что объясняется тем фактом, что имена таблиц (и имена триггеров имен столбцов в целом) не могут, если они не заключены, начинаться с цифр и других ограничений SQLКак понятно из SQlite - Ключевые слова SQLite : -
public class DBHelperNewtablePerDay extends SQLiteOpenHelper {
public static final String DBNAME = "mydb";
public static final int DBVERSION = 1;
public static final String COL_DAILY_ID = BaseColumns._ID;
public static final String COl_DAILY_DATA = "_data";
SQLiteDatabase mDB;
private String mTodaysTable;
DBHelperNewtablePerDay(Context context) {
super(context, DBNAME, null, DBVERSION);
mDB = this.getWritableDatabase();
createTodaysTable();
}
@Override
public void onCreate(SQLiteDatabase sqLiteDatabase) {
}
@Override
public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {
}
private void createTodaysTable() {
String table_name = "[" + dateTodayinDD_MM_YYFormat() + "]";
Cursor csr = mDB.query("sqlite_master",null,"name=?",new String[]{table_name},null,null,null);
if (csr.getCount() < 1) {
mDB.execSQL("CREATE TABLE IF NOT EXISTS " + table_name + "(" +
COL_DAILY_ID + " INTEGER PRIMARY KEY, " +
COl_DAILY_DATA + " TEXT " +
")");
}
mTodaysTable = table_name;
}
private String dateTodayinDD_MM_YYFormat() {
return new SimpleDateFormat("dd_MM_yyyy", Locale.getDefault()).format(new Date());
}
public String getTodaysTableName() {
return mTodaysTable;
}
}
- Очевидно, что имена столбцов, вероятно, необходимо будет соответствующим образом скорректировать.
- Обратите внимание на метод
getTodaysTableName
, который возвращаеттаблица текущего дня. - Обратите внимание на исправленный формат
Отказ от ответственности
Этот ответ никоим образом не поддерживает / рекомендует практику создания таблиц на ежедневной основе.