适用于Android SDK的SQLite数据库

我正在编写一个似乎可以在没有外键的情况下进行测试的数据库,但是一旦我输入了外键,它似乎就混乱了。到目前为止,我正在测试一个用户表,并具有以下代码;

public static final String TABLE_USERS = "users";

public static final String COLUMN_USER_ID = "_id";
public static final String COLUMN_USER_NAME = "user_name";
public static final String COLUMN_USER_DOB = "DOB";
public static final String COLUMN_USER_PLAN_ID = COLUMN_PLAN_ID;

private static final String SQL_CREATE_TABLE_USER = "create table " + TABLE_USERS+ " ("
        + COLUMN_USER_ID + " INTEGER PRIMARY KEY NOT NULL, "
        + COLUMN_USER_NAME + " TEXT NOT NULL, "
        + COLUMN_USER_DOB + " TEXT NOT NULL, "
        + COLUMN_USER_PLAN_ID+ " INTEGER FOREIGN KEY ("+COLUMN_USER_PLAN_ID+") REFERENCES plan("+COLUMN_PLAN_ID+")"


        + ");";

我正在使用以下代码进行测试,但是它从未达到可以对其进行测试的阶段。

public long insertRow(String name, String DOB, int planId) {


    ContentValues initialValues = new ContentValues();
    initialValues.put(COLUMN_USER_NAME, name);
    initialValues.put(COLUMN_USER_DOB, DOB);
    initialValues.put(COLUMN_USER_PLAN_ID, planId);

    return db.insert(TABLE_USERS , null, initialValues);
}

我在某处或某处语法出错了吗?仿真器只是拒绝打开测试活动

计划表;

public static final String TABLE_PLAN = "plan";
public static final String COLUMN_PLAN_ID = "plan_id";
public static final String COLUMN_PLAN_DESCRIPTION = "description";
public static final String COLUMN_PLAN_DISTANCE = "distance";
public static final String COLUMN_PLAN_LEVEL = "level";
public static final String COLUMN_PLAN_COMPLETED = "completed";
public static final String COLUMN_PLAN_DATE = "date";


private static final String SQL_CREATE_TABLE_PLAN = "CREATE TABLE " + TABLE_PLAN + "("
        + COLUMN_PLAN_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, "
        + COLUMN_PLAN_DESCRIPTION + " TEXT NOT NULL, "
        + COLUMN_PLAN_DISTANCE + " INTEGER NOT NULL, "
        + COLUMN_PLAN_LEVEL + " INTEGER NOT NULL, "
        + COLUMN_PLAN_COMPLETED+ " TEXT NOT NULL, "
        + COLUMN_PLAN_DATE + " TEXT NOT NULL "

        +");";
戴维·M

将您的定义更改SQL_CREATE_TABLE_USER为...

private static final String SQL_CREATE_TABLE_USER = "create table " + TABLE_USERS+ " ("
        + COLUMN_USER_ID + " INTEGER PRIMARY KEY NOT NULL, "
        + COLUMN_USER_NAME + " TEXT NOT NULL, "
        + COLUMN_USER_DOB + " TEXT NOT NULL, "
        + COLUMN_USER_PLAN_ID+ " INTEGER, "
        + "FOREIGN KEY ("+COLUMN_USER_PLAN_ID+") REFERENCES " + TABLE_PLAN + " ("+COLUMN_PLAN_ID+"));";

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

适用于ARM的Android SDK

来自分类Dev

适用于Android的Scala库

来自分类Dev

从SQLite数据库Android SDK获取随机行

来自分类Dev

SignalR android SDK仅适用于WiFi连接

来自分类Dev

SQLite SELECT不再适用于Android API 21,但适用于18

来自分类Dev

适用于Android SDK的HAXM安装程序

来自分类Dev

安装适用于Android的Estimote SDK

来自分类Dev

适用于Android库的Android API级别注释

来自分类Dev

找不到适用于react-native的Android SDK

来自分类Dev

适用于Camera Native Android的库

来自分类Dev

适用于Android的Soundcloud SDK

来自分类Dev

适用于Android的新SDK中的Paypal CVV问题

来自分类Dev

适用于Android的Facebook SDK问题

来自分类Dev

哪个适用于Android数据库?

来自分类Dev

适用于Android的Facebook SDK空指针异常

来自分类Dev

从SQLite数据库Android SDK获取随机行

来自分类Dev

SQLite数据库Where子句不适用于文本数据类型Android

来自分类Dev

为适用于与(SQLite)数据库进行交互的功能的Haskell测试框架提供建议

来自分类Dev

SignalR android SDK仅适用于WiFi连接

来自分类Dev

SQLite SELECT不再适用于Android API 21,但适用于18

来自分类Dev

适用于Android移动应用程序的数据库

来自分类Dev

适用于Android的Glympse SDK和Android Studio

来自分类Dev

适用于iOS的sqlite数据库管理器

来自分类Dev

适用于Android ADB的Java库

来自分类Dev

适用于Android应用程序的数据库

来自分类Dev

适用于Android的Cordova Spaceite数据库无法正常工作

来自分类Dev

适用于Android SDK的Xamarin绑定

来自分类Dev

具有适用于Android的sqlite数据库插件的unity3d

来自分类Dev

适用于 Android 的 ArcGIS Runtime SDK