Всем привет. Никак не могу разобраться со внешними ключами. Суть проблемы:
Есть три таблицы: таблица employee c полями employee_id, name, phone. Создаю таблицу так
SQL |
create table employee(employee_id INT NOT NULL AUTO_INCREMENT, name VARCHAR(50) NOT NULL, phone VARCHAR (15) NOT NULL, PRIMARY KEY(employee_id)) ENGINE=InnoDB CHARACTER SET=UTF8;
|
таблица post c полями post_id, post_name:
SQL |
create table post(post_id INT NOT NULL AUTO_INCREMENT, post_name VARCHAR(20) NOT NULL, PRIMARY KEY (post_id)) ENGINE=InnoDB CHARACTER SET=UTF8;
|
и таблица employee_post содержащая два внешних ключа:
SQL |
create table employee_post(employee_id INT NOT NULL, post_id INT NOT NULL, FOREIGN KEY (employee_id) REFERENCES employee(employee_id) ON UPDATE CASCADE ON DELETE RESTRICT, FOREIGN KEY (post_id) REFERENCES post(post_id) ON UPDATE CASCADE ON DELETE RESTRICT) ENGINE=InnoDB CHARACTER SET=UTF8;
|
Проблема собственно в том, чтобы при добавлении данных в таблицы employee и post, автоматически заподнялись соответствующие поля в employee_post. Сейчас это не
работает.
И Вообще возможно ли это сделать?
Спустя 17 минут, 6 секунд (8.03.2009 - 13:58) vasa_c написал(а):
Да, можно: при добавлении данных в таблицы employee и post, заносить соответствующие данные в employee_post

Для любителей острых ощущений - можно повесить триггеры на добавления в employee и post.
Вторичные же ключи в этом не помогут.
Что-то более конкретное сказать нельзя, так как абсолютно непонятно что это за "соответствующие поля" и чем они должны заполняться.