







|
MySQL.RU - Webboard
Вернуться
Foreign key по ДВУМ полям/индексам??? (HBiT) 22/03/2006 - 08:29:30
Re: Foreign key по ДВУМ полям/индексам??? (HBiT) 22/03/2006 - 10:18:11
Re: Foreign key по ДВУМ полям/индексам??? (Dinky) 22/03/2006 - 19:10:09
> Original message text:
> From: HBiT - 22/03/2006 - 08:29:30
> Subject:Foreign key по ДВУМ полям/индексам???
> -----------------
> У меня mysql Ver 12.20 Distrib 4.0.13, for pc-linux (i686)
> я создал пару таблиц innodb
>
> CREATE TABLE `managers` (
> `Id` int(11) NOT NULL auto_increment,
> `name` tinytext,
> `info` tinytext,
> `pass` varchar(22) default NULL,
> `valid` tinyint(1) default '0',
> PRIMARY KEY (`Id`),
> KEY `valid` (`valid`,`Id`)
> ) TYPE=InnoDB ROW_FORMAT=FIXED;
>
> CREATE TABLE `subscribes` (
> `Id` int(11) NOT NULL auto_increment,
> `Idman` int(11) default NULL,
> `name` tinytext,
> `valid` tinyint(1) default '0',
> PRIMARY KEY (`Id`),
> KEY `valid` (`valid`,`Idman`),
> CONSTRAINT `0_649` FOREIGN KEY (`valid`) REFERENCES `managers` (`valid`) ON DELETE SET NULL ON UPDATE CASCADE
> ) TYPE=InnoDB ROW_FORMAT=FIXED;
>
> Нужно чтобы при удалении в табл. managers обнулялись поля idman и valid в табл. subscribes, а при обнулении valid.managers обнулялось valid.subscribes
>
> Сейчас при обнулении valid.managers обнуляються все valid.subscribes, без учета idman, хотя в ключе valid оба поля...
> Пробовал делать разные внешние ключи, они работают но не так как мне нужно.
>
> Вообще такое возможно? а то мне понравились внешние ключи, но вот это
> сделать не могу...
>
From: Dinky - 22/03/2006 - 19:10:09
Subject:Foreign key по ДВУМ полям/индексам???
-----------------
имхо _так_ не получится - связь и каскадные обновления должны быть по одним и тем же полям, а ты хочешь свзять по одному полю, а обновлять - другое
> хотя в ключе valid оба поля
нет, ключ нужен чтобы связь работала, а описание свзяи содержит наименование _полей_, а не индексов по ним ;)
http://dev.mysql.com/doc/refman/5.0/en/innodb-foreign-key-constraints.html
--
Dmitry
[Это сообщение - спам!]
Последние сообщения из форума
Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL,
версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
27049
|
|