Помогите с созданием таблиц базы данных

Тема в разделе "Базы данных", создана пользователем nexus-invest, 31 июл 2009.

Статус темы:
Закрыта.
Модераторы: latteo
  1. nexus-invest

    nexus-invest Создатель

    Регистр.:
    18 сен 2008
    Сообщения:
    25
    Симпатии:
    3
    Вопрос вот в чем: имеется 2 таблицы в базе данных MySQL. Одно поле из таблицы №1 является внешним ключем таблицы №2.

    Как правильно создать таблицы, чтобы при удалении записи в таблице №1 автоматически удалялись записи в таблице №2, которые содержать данный ключ?
     
  2. malibu

    malibu Создатель

    Регистр.:
    8 июл 2009
    Сообщения:
    20
    Симпатии:
    9
    ну вот как бы из документации пример

    PHP:
    CREATE TABLE parent (id INT NOT NULL,
                         
    PRIMARY KEY (id)
    ENGINE=INNODB;
    CREATE TABLE child (id INTparent_id INT,
                        
    INDEX par_ind (parent_id),
                        
    FOREIGN KEY (parent_idREFERENCES parent(id)
                          
    ON DELETE CASCADE
    ENGINE=INNODB;
    подробней читай тут: http://dev.mysql.com/doc/refman/5.1/en/innodb-foreign-key-constraints.html
     
  3. kotpluk

    kotpluk Писатель

    Регистр.:
    6 янв 2009
    Сообщения:
    9
    Симпатии:
    0
    Цитирую...механизм хранения InnoDB поддерживает проверку ограничений на внешние ключи, включая CASCADING, ON DELETE и ON UPDATE. Для других механизмов хранения MySQL анализирует синтаксис FOREIGN KEY в операторе CREATE TABLE, но не использует и не хранит его... (MySQL справочник по языку,2005г.) Смотрите на mysql.com как обстоят дела с вашей версией СУБД...
     
  4. werder457

    werder457 Писатель

    Регистр.:
    22 авг 2009
    Сообщения:
    5
    Симпатии:
    0
    не имею понятия
     
  5. WerewolfGSM

    WerewolfGSM

    Регистр.:
    4 дек 2006
    Сообщения:
    257
    Симпатии:
    11
    Каскадное обновление (удаление) Вам в помошь.
     
Статус темы:
Закрыта.