|
|
|
| Есть 2 таблицы, которые необходимо связать. parent и child (поля по которым необходимо связать имеют одинаковое название 'idr')
CREATE TABLE 'parend' (
'idr' smallint(5) unsigned NOT NULL auto_increment,
'pos' int(11) NOT NULL default '0',
'name' tinytext NOT NULL,
'addr' tinytext NOT NULL,
'title' tinytext NOT NULL,
'keyw' tinytext NOT NULL,
'desc_r' tinytext NOT NULL,
'h1' tinytext NOT NULL,
'content' text NOT NULL,
'hide' enum('show','hide') NOT NULL default 'show',
PRIMARY KEY ('idr'),
KEY 'idr' ('idr')
) TYPE=InnoDB
При помощи "связанного вида"
вот такая штука выполнилась:
ALTER TABLE 'child'
ADD CONSTRAINT 'child_ibfk_1' FOREIGN KEY ('idr') REFERENCES 'child' ('idr') ON DELETE CASCADE;
Только вот у меня смутные сомнения, что таблица child сама с собой связывается, ведь по идее в разделе REFERENCES должен быть родитель...
В итоге при удалении в дочерней таблице одной записи удаляются все записи дочерней таблицы...
подскажите что я не правильно делаю, плиз! | |
|
|
|
|
|
|
|
для: kate_2
(05.06.2006 в 00:15)
| | Да вместо
ALTER TABLE child
ADD CONSTRAINT child_ibfk_1 FOREIGN KEY (idr) REFERENCES child (idr) ON DELETE CASCADE
| следует писать
ALTER TABLE child
ADD CONSTRAINT child_ibfk_1 FOREIGN KEY (idr) REFERENCES parend (idr) ON DELETE CASCADE
|
| |
|
|
|
|
|
|
|
для: cheops
(05.06.2006 в 02:55)
| | Спасибо, ошибка найдена! | |
|
|
|