Я не могу создать внешние ключи с ON DELETE SET DEFAULT
, но если я использую ON DELETE CASCADE
, тогда все работает, вот мой sql
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
.... какие-нибудь мысли?