在SQLite中为列设置默认值

时间:2011-05-10 19:34:49

标签: android sqlite

我有一个SQLite表,并希望暂时使用默认值设置它。我怎么能这样做?

以下是我的DatabaseHelper类代码:

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

public class DatabaseHelper extends SQLiteOpenHelper {

    private static final String DATABASE_NAME="iFall.db";
    public static final String TIME="time";
    //public static final String STATUS="status";
    //public static final String MINES="loadmines";
    //public static final String OPENTILE="openTile";

    public DatabaseHelper(Context context)
    {
        super(context,DATABASE_NAME,null,1);
    }
    @Override
    public void onCreate(SQLiteDatabase arg0) {
        // TODO Auto-generated method stub
        //CREATE TABLE minesweeper(_id INTEGER PRIMARY KEY AUTOINCREMENT,userId TEXT
        arg0.execSQL("CREATE TABLE finalP(_id INTEGER PRIMARY KEY AUTOINCREMENT,time TEXT);");

    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        // TODO Auto-generated method stub
        db.execSQL("DROP TABLE IF EXISTS finalP");
        onCreate(db);
    }

}

我想为列时间分配一个默认值,即50。

2 个答案:

答案 0 :(得分:16)

我相信你可以这样做:

arg0.execSQL("CREATE TABLE finalP(_id INTEGER PRIMARY KEY AUTOINCREMENT,time TEXT DEFAULT \'50\');");

它应该可以正常工作。

有关列约束,请参阅sqlite文档。 http://www.sqlite.org/syntaxdiagrams.html#column-constraint

答案 1 :(得分:0)

创建表权限(代码布尔默认'false'); 它用于布尔类型,但您可以将其用于文本类型