heavenm 发表于 2019-9-25 04:01:53

我来回答一个,sqlite建多外键出错,Foreign key mismatch xx referencing xx的问题

本帖最后由 heavenm 于 2019-9-25 04:35 编辑

:face (23):我已经学会问都不问,直接作答了!

多外键的情况下,每个被引用的父字段都必须为主键

之前查到过这个问题,后面忘记了,结果又搞好久才明白这个道理!我要踩平这个坑!
CREATE TABLE "parent" (
"a" TEXT NOT NULL,
"b" TEXT NOT NULL,
"c" TEXT NOT NULL,
PRIMARY KEY ("a", "b", "c")
);CREATE TABLE "child" (
"1" TEXT NOT NULL,
"2" TEXT,
"3" TEXT,
PRIMARY KEY ("1"),
FOREIGN KEY ("1", "2", "3") REFERENCES "parent" ("a", "b", "c")
);

heavenm 发表于 2019-9-25 04:06:51

多主键还会出现一个问题,就是不是按某个单键作为唯一,那么可以加一条
UNIQUE ("唯一键")

heavenm 发表于 2019-9-25 04:40:22

不过实际应用的话,一般情况应该都是单外键的

Dontang2018 发表于 2019-9-25 12:03:44

学习一下,学习一下
页: [1]
查看完整版本: 我来回答一个,sqlite建多外键出错,Foreign key mismatch xx referencing xx的问题