НА УДАЛЕННОМ КАСКАДЕ не работает - PullRequest
2 голосов
/ 04 января 2012

Это sql для 2 таблиц

CREATE TABLE Customer(
    c_id        INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY,
    f_name      VARCHAR(50) NOT NULL,
    l_name      VARCHAR(50) NOT NULL,
    email       VARCHAR(100) NOT NULL,
    number      INTEGER,
    date_joined DATE NOT NULL CHECK (date_added <= now())
);

CREATE TABLE Address(
    a_id        INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY,
    c_id        INTEGER NOT NULL REFERENCES Customer(c_id) ON DELETE CASCADE,
    billing     BOOLEAN,
    f_line      VARCHAR(50) NOT NULL,
    s_line      VARCHAR(100),
    county      VARCHAR(20) NOT NULL,
    p_code      VARCHAR(7) NOT NULL,
    number      INTEGER(11)
);

Однако, когда я удаляю клиента, его адрес не удаляется, есть идеи, почему?

1 Ответ

6 голосов
/ 04 января 2012

Не могу точно сказать наверняка, не зная, какую БД вы используете, но я думаю, что вам, вероятно, нужно объявить fk как ограничение:

CREATE TABLE Address(
    a_id        INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY,
    c_id        INTEGER NOT NULL,
    billing     BOOLEAN,
    f_line      VARCHAR(50) NOT NULL,
    s_line      VARCHAR(100),
    county      VARCHAR(20) NOT NULL,
    p_code      VARCHAR(7) NOT NULL,
    number      INTEGER(11),
     FOREIGN KEY (c_id) REFERENCES Customer(c_id) ON DELETE CASCADE
);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...