Новости
Документация
Download
Webboard
Поиск
FAQ/ЧаВо
Обратная связь




MySQL.RU - Webboard



Вернуться
проблема со связанными таблицами (dmitr) 06/01/2008 - 02:50:32
      Re: AUTO_INCREMENT (vi.k) 06/01/2008 - 07:02:16
      Re: Извиняюсь. Не туда отправил... (vi.k) 06/01/2008 - 07:04:38
      Re: Используйте InnoDB (vi.k) 06/01/2008 - 07:35:39

> Original message text:
> From: dmitr - 06/01/2008 - 02:50:32
> Subject:проблема со связанными таблицами
> -----------------
> нужно чтоб при удалении продавца из salers удалялись все заказы из orders с соответствующим saler_id
> нижеследующее неработает, подскажите как нужно сделать.
>
> CREATE TABLE salers (
> saler_id int(11) NOT NULL auto_increment,
> name char(50),
> PRIMARY KEY (saler_id)
> );
>
> CREATE TABLE orders (
> order_id int(11) NOT NULL auto_increment PRIMARY KEY,
> saler_id int(11),
> name char(50),
> foreign key (saler_id) references salers (saler_id) on delete cascade
> );
>
>


From: vi.k - 06/01/2008 - 07:35:39
Subject:Используйте InnoDB
-----------------
FOREIGN KEYS работают только для таблиц типа InnoDB. У вас, видимо, по умолчанию используется MyISAM. Проблема в том, что в этом случае никаких ошибок не выдаётся, таблицы создаются, но без FOREIGN KEYS.

Из местной, изрядно устаревшей документации на русском:
> Выражения FOREIGN KEY, CHECK и REFERENCES фактически ничего
> не делают. Они введены только из соображений совместимости,
> чтобы облегчить перенос кода с других SQL-серверов и
> запускать приложения, создающие таблицы со ссылками.

Можете посмотреть с помощью запроса SHOW CREATE TABLE orders. Там вы точно увидите как именно создаётся ваша таблица.

Если у вас включена возможность использования InnoDB, достаточно будет в конце CREATE TABLE поставить ENGINE=InnoDB.

Соответственно, на MyISAM не работают и транзакции, и также как и в случае с FOREIGN KEYS, ошибок при выполнении START TRANSACTION и COMMIT не будет, но и транзакций не будет...

Старайтесь смотреть документацию, поставляемую с вашей версией MySQL. Если её нет - смотрите на официальном сайте:
http://dev.mysql.com/doc/refman/4.1/en/ansi-diff-foreign-keys.html

Там же можно скачать и на русском, но только для 4-й версии.



[Это сообщение - спам!]

Последние сообщения из форума

Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL, версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
32728



РЕКЛАМА НА САЙТЕ
  Создание сайтов | |