回答

收藏

PostgreSQL:外键/删除级联

技术问答 技术问答 96 人阅读 | 0 人回复 | 2023-09-13

我有两个像这样的表:
7 ]" T* j' \. P) U/ s; s3 QDROP   TABLE  IF EXISTS schemas.book;2 t6 o  N, n! d4 @/ R# ~* b
DROP   TABLE  IF EXISTS schemas.category;
+ z. l7 A0 P" \* H8 C3 DDROP   SCHEMA IF EXISTS schemas;
: S, s3 S/ W# F4 V4 Y& P; }/ iCREATE SCHEMA schemas;6 k3 A( Y9 h- p3 G
CREATE TABLE schemas.category (+ U- L- H0 w( K% K
  id          BIGSERIAL PRIMARY KEY,
/ \9 j4 \: d& L" k" Y; x  name        VARCHAR   NOT NULL,
' _) v" p. m/ l( G9 u  UNIQUE(name)
  ?+ s5 W. k: n' E, G$ t);
0 p/ W( Z8 R: [. WCREATE TABLE schemas.book (
- k" q9 m7 j/ a. p; N6 G  id          BIGSERIAL PRIMARY KEY,2 t" @. t* q/ v/ `
  published   DATE      NOT NULL,
) V& l: j. k1 [0 [! T  category_id BIGINT    NOT NULL REFERENCES schemas.category ON DELETE CASCADE ON UPDATE CASCADE,
1 ^3 T/ h  k' N3 `9 c' R8 n  author      VARCHAR   NOT NULL,
! V8 Z+ [" h7 G+ ^; L  name        VARCHAR   NOT NULL,
) j3 [" ^/ }2 ~4 b  UNIQUE(published, author, name),
( B0 b' z5 G# C6 d# G  FOREIGN KEY(category_id) REFERENCES schemas.category (id)# l  u4 a9 z9 u
);
: X4 ]; o; S! G1 j因此,逻辑很简单,用户删除了类别x下??的所有书籍,从猫中删除了x之后,我尝试了上述方法,但不起作用,在我清理了表格书籍后,表格类别仍被填充,这是怎么回事?
3 _2 L# J4 ]% C# S7 G               
3 u7 D/ e- ]8 G- M  L8 m解决方案:
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则