sql - 复合外键引用2个不同的表

标签 sql sqlite foreign-keys relational-database

我创建了3个表StudentDepartmentMajor_in

我想在email, Department_ID的(Major_in)上创建一个复合外键,该外键引用email的主键StudentDepartment_IDDepartment

CREATE TABLE Student
(
    email VARCHAR(20) PRIMARY KEY
);

CREATE TABLE Department
(
    Department_ID INTEGER PRIMARY KEY
);

CREATE TABLE Major_in 
(
    email VARCHAR(20), 
    Department_ID INTEGER,
    FOREIGN KEY (roll, Department_ID) 
         REFERENCES (Student(email), Department(Department_ID)
);


但是我得到了错误


错误:“(”附近:语法错误in sqlite3`

最佳答案

弄清楚这样做是有效的,是一个基本的语法错误。

CREATE TABLE Major_in
(
    email REFERENCES Student, 
    Department_ID REFERENCES Department, 
    PRIMARY KEY (email, Department_ID)
);

关于sql - 复合外键引用2个不同的表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54497586/

相关文章:

android - Android 版 SQLite 中的小写字母

c++ - 提交对 SQLite 数据库的更改,这可以在 QTab 之间看到

mysql - 不能删除 key ,即使它存在 : Error Code: 1091

mysql - 一对一关系中的实体可以只有一个外键作为 ERM 中的主键吗?

sql - 用于在 Bigquery 中创建数据透视列的字符串聚合

c# - 在 LINQ to SQL 中选择 "IN"

python - 这段代码在数据库中只写了一行?

node.js - 获取 mongoDB API Node Express 中 3 个集合中的所有文档

sql - 使用 T-SQL 中另一个(非 XML)列的值更新 XML

mysql - 为什么 BOOLEAN 类型列在关系数据库设计中存在问题?