我不能ON DELETE SET DEFAULT
建立外鍵,但如果我使用ON DELETE CASCADE
那麼所有在這裏工作是我的SQL無法創建外鍵用ON DELETE SET DEFAULT
CREATE TABLE person(
customer_id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100) UNIQUE
);
CREATE TABLE habits(
customer_id INT AUTO_INCREMENT PRIMARY KEY,
habit VARCHAR(100) UNIQUE
);
INSERT INTO `test`.`habits` (`customer_id`, `habit`) VALUES (NULL, 'smoking'), (NULL, 'drinking');
INSERT INTO `test`.`person` (`customer_id`, `name`) VALUES (NULL, 'John'), (NULL, 'Steve');
CREATE TABLE foreigner(
customer_id INT AUTO_INCREMENT PRIMARY KEY,
customer VARCHAR(100) DEFAULT 'John',
habbit VARCHAR(100) DEFAULT 'smoking',
FOREIGN KEY (customer) REFERENCES person(name) ON DELETE SET DEFAULT ON UPDATE CASCADE,
FOREIGN KEY (habbit) REFERENCES habits(habit) ON DELETE SET DEFAULT ON UPDATE CASCADE
);
很奇怪,它的作品,如果我使用ON DELETE CASCADE
....任何想法?
因此,您不想從5個(或任何其他數量的)行從'foreigner'表中刪除(由於級聯效應),您最終需要5個(幾乎)相同的行與'(customer,habbit )=('約翰,'吸菸')'。你爲什麼要這樣? –
我無法拒絕提及3個無用的'customer_id'列。 –
與這些值的表只是一個例子 - 實際上我有更大的表,值和行,甚至可能是有用的:) – fjckls