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

幻象森林
  • 3
新手上路,请多包涵

用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是不是不支持这么干?

回复
阅读 764
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
    )
);
宣传栏