CONSTRAINT FOREIGN KEY ( id) REFERENCES table2( id ) ON DELETE CASCADE ON UPDATE CASCADE
Нужно в неё добавить ещё один ключ, возможно ли это? Например так:
CONSTRAINT FOREIGN KEY ( id) REFERENCES table2( id ) AND table3( id ) ON DELETE CASCADE ON UPDATE CASCADE
Спустя 29 минут, 51 секунда (1.04.2009 - 12:30) waldicom написал(а):
В смысле надо, что бы запись могла быть вставлена только тогда, когда такая ID обязательно есть в двух таблицах?
Спустя 3 минуты, 1 секунда (1.04.2009 - 12:33) Гость_Ivan написал(а):
В смысле чтобы если менялось значение в таблице например 4 то оно менялось и в 2 и в 3.
Спустя 3 минуты, 48 секунд (1.04.2009 - 12:36) waldicom написал(а):
Може я не то понимаю, но почему с каждой таблицы не сделать референс на главную?
Спустя 3 минуты, 42 секунды (1.04.2009 - 12:40) Гость_Ivan написал(а):
Но тогда я же не смогу изменить id в таблице 4:(, т.к. он будет привязан к значениям в 2 и 3, а нужно наоборот: я меняю в 4 и меняется в 2 и 3.
Спустя 8 минут, 3 секунды (1.04.2009 - 12:48) waldicom написал(а):
Смотри, я только что проверил так:
T1 главная таблица, T2 и T3 ведомые.
С Т2 и Т3 делаем ключи на Т1. Теперь при изменении Т1 будут изменяться эти ключи в Т2 и Т3
T1 главная таблица, T2 и T3 ведомые.
С Т2 и Т3 делаем ключи на Т1. Теперь при изменении Т1 будут изменяться эти ключи в Т2 и Т3
Спустя 3 минуты, 15 секунд (1.04.2009 - 12:51) waldicom написал(а):
SQL |
CREATE TABLE `t1` ( `t1_id` int(10) NOT NULL, `t1_name` varchar(12) collate utf8_unicode_ci NOT NULL, PRIMARY KEY (`t1_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; |
SQL |
CREATE TABLE `t2` ( `t2_id` int(10) NOT NULL, `t2_name` varchar(12) collate utf8_unicode_ci NOT NULL, PRIMARY KEY (`t2_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; ALTER TABLE `t2` ADD CONSTRAINT `t2_ibfk_1` FOREIGN KEY (`t2_id`) REFERENCES `t1` (`t1_id`) ON DELETE CASCADE ON UPDATE CASCADE; |
SQL |
CREATE TABLE `t3` ( `t3_id` int(10) NOT NULL, `t3_name` varchar(12) collate utf8_unicode_ci NOT NULL, PRIMARY KEY (`t3_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; ALTER TABLE `t3` ADD CONSTRAINT `t3_ibfk_1` FOREIGN KEY (`t3_id`) REFERENCES `t1` (`t1_id`) ON DELETE CASCADE ON UPDATE CASCADE; |
Спустя 3 часа, 20 минут, 48 секунд (1.04.2009 - 16:12) Гость_Ivan написал(а):
Спасибо! Помогло!