sqlite版本大於3.6.19的應該支持外鍵,但是在程序中需要自己打開外鍵選項。
如果android api>16的話在SQLOpenHelper助手类中的onOpen函数中添加如下代碼:@Override public void onOpen(SQLiteDatabase db) { super.onOpen(db); if(!db.isReadOnly()) { // Enable foreign key constraints db.execSQL("PRAGMA foreign_keys=ON;"); } }

解决方案 »

  1.   

    /**
     * 创建数据库和表的类
     * @author TCK-001
     * @version 1.0
     */
    public class DatabaseHelper extends SQLiteOpenHelper {

    private static final String dbName = "tck.db"; //数据库名称
        private static final int dbVersion = 1; //数据库版本

    public DatabaseHelper(Context context) {
    super(context, dbName, null, dbVersion);
    } @Override
    public void onCreate(SQLiteDatabase db) {
    String sql = "create table backup (id integer primary key autoincrement, url varchar(200), param varchar(500), memberId integer, data text);";
    db.execSQL(sql);
    sql = "create table image (id integer primary key autoincrement, url varchar(200), path varchar(200));";
    db.execSQL(sql);
    sql = "create table spare (id integer primary key autoincrement, field1 varchar(200), field2 varchar(200), field3 varchar(200));";
    db.execSQL(sql);
    } @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { }}