MST

星途 面试题库

面试题:SQLite在Android开发中如何创建带外键约束的表

在Android开发环境下,使用SQLite创建一个用户表`users`,包含字段`id`(主键自增)、`name`、`age`,再创建一个订单表`orders`,包含字段`order_id`(主键自增)、`user_id`(外键关联`users`表的`id`字段)、`order_amount`。请写出对应的SQL语句,并说明如何确保外键约束生效。
28.7万 热度难度
数据库SQLite

知识考点

AI 面试

面试题答案

一键面试
  1. 创建users表的SQL语句:
CREATE TABLE users (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    name TEXT,
    age INTEGER
);
  1. 创建orders表的SQL语句:
CREATE TABLE orders (
    order_id INTEGER PRIMARY KEY AUTOINCREMENT,
    user_id INTEGER,
    order_amount REAL,
    FOREIGN KEY (user_id) REFERENCES users(id)
);
  1. 确保外键约束生效: 在Android中,默认情况下SQLite的外键约束是不生效的。要确保外键约束生效,需要在获取SQLiteDatabase实例后,调用setForeignKeyConstraintsEnabled(true)方法。示例代码如下:
SQLiteOpenHelper helper = new MyDatabaseHelper(context, "my.db", null, 1);
SQLiteDatabase db = helper.getWritableDatabase();
db.setForeignKeyConstraintsEnabled(true);

其中MyDatabaseHelper是继承自SQLiteOpenHelper的自定义帮助类。这样设置后,数据库操作就会遵循外键约束规则。