I have two tables, in the open application is going to check.
But when I create these two SQLite Dao objects there is always a table can not be created.
This table is CashPayDao, even if I changed the implementation of the order to amend and modify the database version number will not be created.
When I commented out WXPayDao will be able to successfully create CashPayDao corresponding table.
First, create two SQLite Dao objects in onCreate
    cashDao = CashPayDao(this)
    wxDao = WXPayDao(this)
CashPayDao content:
class CashPayDao(context: Context) {
    private val payHelper = CashPayDBHelper(context)
CashPayDBHelper content:
class CashPayDBHelper(context: Context) : SQLiteOpenHelper(context, DB_NAME, null, DB_VERSION) {
    override fun onCreate(db: SQLiteDatabase) {
        db.execSQL(SQLITE_CREATE)
    }
    override fun onUpgrade(db: SQLiteDatabase, oldVersion: Int, newVersion: Int) {
        db.execSQL(SQLITE_DELETE_ENTRIES)
        onCreate(db)
    }
    override fun onDowngrade(db: SQLiteDatabase, oldVersion: Int, newVersion: Int) {
        onUpgrade(db, oldVersion, newVersion)
    }
    companion object {
        private val SQLITE_CREATE = "create table if not exists " + CASHPAY_TABLE_NAME + " (" +
                OUT_TRADE_NO + TEXT_TYPE + " PRIMARY KEY, " +
                TEL_SEQ + TEXT_TYPE + COMMA_SEP +
                TOTAL_FEE + DOUBLE_TYPE + COMMA_SEP +
                STORE_ID + TEXT_TYPE + COMMA_SEP +
                ASS_POS + INT_TYPE + COMMA_SEP +
                NEXT_TRANNO + INT_TYPE + COMMA_SEP +
                SEQ + TEXT_TYPE + COMMA_SEP +
                THE_STEP + INT_TYPE + COMMA_SEP +
                ERROR_MESSAGE + TEXT_TYPE + COMMA_SEP +
                IS_DONE + INT_TYPE + DEFAULT + COMMA_SEP +
                IS_UPLOAD + INT_TYPE + DEFAULT + COMMA_SEP +
                UPLOAD_COUNT + INT_TYPE + DEFAULT + COMMA_SEP +
                CREATE_TIME + " DATETIME DEFAULT (datetime(CURRENT_TIMESTAMP,'localtime')))"
        private val SQLITE_DELETE_ENTRIES = "DROP TABLE IF EXISTS " + CASHPAY_TABLE_NAME
    }
}
WXPayDao content:
class WXPayDao(context: Context) {
    private val payHelper = WXPayDBHelper(context)
WXPayDBHelper content:
class WXPayDBHelper(context: Context) : SQLiteOpenHelper(context, DB_NAME, null, DB_VERSION) {
    override fun onCreate(db: SQLiteDatabase) {
        db.execSQL(SQLITE_CREATE)
    }
    override fun onUpgrade(db: SQLiteDatabase, oldVersion: Int, newVersion: Int) {
        db.execSQL(SQLITE_DELETE_ENTRIES)
        onCreate(db)
    }
    override fun onDowngrade(db: SQLiteDatabase, oldVersion: Int, newVersion: Int) {
        onUpgrade(db, oldVersion, newVersion)
    }
    companion object {
        private val SQLITE_CREATE = "create table if not exists " + WXPAY_TABLE_NAME + " (" +
                OUT_TRADE_NO + TEXT_TYPE + " PRIMARY KEY, " +
                TRANSACTION_ID + TEXT_TYPE + COMMA_SEP +
                TEL_SEQ + TEXT_TYPE + COMMA_SEP +
                TOTAL_FEE + DOUBLE_TYPE + COMMA_SEP +
                STORE_ID + TEXT_TYPE + COMMA_SEP +
                ASS_POS + INT_TYPE + COMMA_SEP +
                NEXT_TRANNO + INT_TYPE + COMMA_SEP +
                SEQ + TEXT_TYPE + COMMA_SEP +
                OPENID + TEXT_TYPE + COMMA_SEP +
                COUPON_FEE + DOUBLE_TYPE + COMMA_SEP +
                THE_STEP + INT_TYPE + COMMA_SEP +
                ERROR_MESSAGE + TEXT_TYPE + COMMA_SEP +
                IS_DONE + INT_TYPE + DEFAULT + COMMA_SEP +
                IS_UPLOAD + INT_TYPE + DEFAULT + COMMA_SEP +
                UPLOAD_COUNT + INT_TYPE + DEFAULT + COMMA_SEP +
                CREATE_TIME + " DATETIME DEFAULT (datetime(CURRENT_TIMESTAMP,'localtime')))"
        private val SQLITE_DELETE_ENTRIES = "DROP TABLE IF EXISTS " + WXPAY_TABLE_NAME
    }
}
I have carefully identified the table name is different, one is cash_pay, one is wx_pay, the database is the same, and now did not understand why this is so.
What should I do? Thank! (@•ᴗ•@)
I've now solved it by running both tables on Helper's onCreate and onUpgrade.
CashPayDBHelper content:
override fun onCreate(db: SQLiteDatabase) {
    db.execSQL(SQLITE_CREATE)
    db.execSQL(WXPayDBHelper.SQLITE_CREATE)
}
override fun onUpgrade(db: SQLiteDatabase, oldVersion: Int, newVersion: Int) {
    db.execSQL(SQLITE_DELETE_ENTRIES)
    db.execSQL(WXPayDBHelper.SQLITE_DELETE_ENTRIES)
    onCreate(db)
}
WXPayDBHelper content:
override fun onCreate(db: SQLiteDatabase) {
        db.execSQL(SQLITE_CREATE)
        db.execSQL(CashPayDBHelper.SQLITE_CREATE)
    }
override fun onUpgrade(db: SQLiteDatabase, oldVersion: Int, newVersion: Int) {
        db.execSQL(SQLITE_DELETE_ENTRIES)
        db.execSQL(CashPayDBHelper.SQLITE_DELETE_ENTRIES)
        onCreate(db)
    }
I have a bold idea......
I probably know the reason, but I think I now need to study the source code......
 
    