[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: SQL foreign key
Гость_Ivan
Вот такая конструкция:
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

Спустя 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 написал(а):
Спасибо! Помогло!
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.