sqlite3中如何在创建表的时候将两个外键同时设为主键?

用sqlite.exe实现教材上的样例
在SC中用关联到Student和Course的外键同时作为主键

create table main.SC(
    Grade int,
    FOREIGN KEY(Sno_SC) references Student(Sno) primary key,
    FOREIGN KEY(Cno_SC) references Course(Cno)  primary key);

提示如下错误

Error: unknown column "Sno_SC" in foreign key definition

网上没有找到任何相关贴子, sqlite是不是不支持这么干?

阅读 2.9k
1 个回答

那必须是支持的,不过 sqlite 有自己独特的写法:

CREATE TABLE main.SC (
    -- 首先你要声明所有的列
    Grade  INTEGER,
    Sno_SC INTEGER,
    Cno_SC INTEGER,
    -- 然后再外键和主键
    FOREIGN KEY (Sno_SC) REFERENCES Student (Sno),
    FOREIGN KEY (Cno_SC) REFERENCES Course  (Cno),
    PRIMARY KEY (
        Sno_SC,
        Cno_SC
    )
);
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题