|
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,
версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
32728
|
|