Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
menu search
person
Welcome To Ask or Share your Answers For Others

Categories

I have the following structure: (Sorry for awkward names, it is because it is a sqlite database for my iPhone app which is not released yet)

CREATE TABLE klb_log (
  id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
  log_comment varchar(512)
)

CREATE TABLE klb_log_food_maps (
  uid integer,
  did integer,
  PRIMARY KEY (uid,did),
  FOREIGN KEY (uid) references klb_log(id) ON DELETE CASCADE,
  FOREIGN KEY (did) references klb_food(id) ON DELETE CASCADE
)

CREATE TABLE klb_food (
  id integer,
  description varchar(255),
  PRIMARY KEY (id)
)

Is there a reason why the row in klb_log_food_maps is not removed when I delete a row in klb_log?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
419 views
Welcome To Ask or Share your Answers For Others

1 Answer

Foreign key support is not enabled in SQLite by default. You need to enable it manually each time you connect to the database using the pragma:

PRAGMA foreign_keys = ON

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
...