【问题标题】:How can I add data to SQLite tables as foreign keys?如何将数据作为外键添加到 SQLite 表?
【发布时间】:2021-02-12 21:01:48
【问题描述】:

我的数据库中有两个表。它们是usermessage

User 表包含与,

  1. 用户 ID(主键)
  2. 用户名
  3. 密码栏

Message 表包含与,

  1. MessageId(主键)
  2. 用户 ID(外键)
  3. 主题
  4. 消息栏

登录后用户可以发送消息。所以我想将上面的列详细信息保存在message 表中。但是当我填写表格时,userid 没有作为外键。该列是空的,如下图所示。

这些是我的 dbHandler 代码

public void onCreate(SQLiteDatabase db) {
    String TABLE_USER_CREATE = "CREATE TABLE "+ UserTable.Users.TABLE_NAME+"("+
            UserTable.Users._ID+" INTEGER PRIMARY KEY,"+
            UserTable.Users.COLUMN_NAME+" TEXT,"+
            UserTable.Users.COLUMN_PASSWORD+ " TEXT,"+
            UserTable.Users.COLUMN_TYPE+ " TEXT"+" );";
    db.execSQL(TABLE_USER_CREATE);

    String TABLE_MESSAGE_CREATE = "CREATE TABLE "+ MessageTable.Messages.TABLE_NAME+"("+
            MessageTable.Messages._ID+" INTEGER PRIMARY KEY,"+
            MessageTable.Messages.COLUMN_USER+" TEXT,"+
            MessageTable.Messages.COLUMN_SUBJECT+ " TEXT,"+
            MessageTable.Messages.COLUMN_MESSAGE+" TEXT,"+
            " FOREIGN KEY ("+ MessageTable.Messages.COLUMN_USER+") REFERENCES "+ UserTable.Users.TABLE_NAME+"("+ UserTable.Users._ID+"))";
    db.execSQL(TABLE_MESSAGE_CREATE);
}

保存消息方法:

 public long saveMessage(String subjects, String messages){
    SQLiteDatabase db = getWritableDatabase();

    ContentValues contentValues = new ContentValues();
    contentValues.put(MessageTable.Messages.COLUMN_SUBJECT,subjects);
    contentValues.put(MessageTable.Messages.COLUMN_MESSAGE,messages);

   long newRowId = db.insert(MessageTable.Messages.TABLE_NAME,null,contentValues);

    db.close();
    return newRowId; }

我是安卓新手。有人可以帮我解决这个问题吗?

【问题讨论】:

    标签: java android sqlite


    【解决方案1】:

    它是NULL,因为您从未设置它。外键并不神奇,它们只是一个约束,即您添加的任何值都必须存在于引用的列中。

    由于您也没有添加 NOT NULL 约束,它只是添加了您告诉它的内容 - 只有主题和消息。

    【讨论】:

      猜你喜欢
      • 2020-11-20
      • 2010-12-25
      • 2023-04-03
      • 2020-02-20
      • 2013-07-10
      • 1970-01-01
      • 1970-01-01
      • 2013-07-13
      • 1970-01-01
      相关资源
      最近更新 更多