1

Тема: phpMyAdmin - 2.9.1.1 и InnoDB

phpMyAdmin - 2.9.1.1,  MySQL - 5.0.24a, PHP Version 5.1.6
(InnoDB is available on this MySQL server.)
.
Есть две таблицы:
1. ref_article (InnoDB) - в ней поле id_redaktor int(4) INDEX
2. ref_user (InnoDB) - в ней поле id int(4) PRIMARY
.
пытаюсь установить внешний ключ ref_article.id_redaktor -> ref_user.id
выдает "Индекс не определен! (id_redaktor)"
прямые запросы по созданию внешнего ключа тоже не отрабатываются (пробовал разные варианты вплоть до примеров из Веллинга и MySQL.com)...
есть у кого идеи?

2

Re: phpMyAdmin - 2.9.1.1 и InnoDB

Дальше...
из под php отправил запрос на создание таблиц
таблицы созданы, phpMyAdmin в закладке "Relation view" связи видит, НО при попытке установить там же "ON DELETE", "ON UPDATE" выдает "No index defined!" и связь теряется
.
ЗЫ.
не пособит кто объяснением, чем установка KEY в запросе CREATE TABLE отличается от установки INDEX?
связь устанавливается как в одном, так и в другом случае, с теми же последствиями для phpMyAdmin...

3

Re: phpMyAdmin - 2.9.1.1 и InnoDB

всё стоит на винде...
не в этом ли дело?

4

Re: phpMyAdmin - 2.9.1.1 и InnoDB

Chop

не пособит кто объяснением, чем установка KEY в запросе CREATE TABLE отличается от установки INDEX?

PRIMARY KEY отличается от INDEX

есть у кого идеи?

Для обеспечения ссылочной целостности InnoDB столбец, указанный при объявлении внешнего ключа (ref_user.id) должен допускать присвоение ему пустых значений. А т.к. ref_user.id - PRIMARY KEY (индексы данного типа не могут хранить пустых значений) MySQL выдает тебе ошибку. 

Попробуй объявить внешним ключом ref_article.id_redaktor, а ref_user.id - будет индексом порождающей таблицы. В данном случае ошибки не будет, т.к. INDEX допускает использование пустых значений.

Нет неразрешимых проблем, есть неприятные решения. (Э. Борн)

5

Re: phpMyAdmin - 2.9.1.1 и InnoDB

PRIMARY KEY отличается от INDEX

это понятно но вопрос не о PRIMARY KEY, а о KEY/INDEX
тот же phpMyAdmin на закладках пишет INDEX, а при експорте в SQL - KEY...

должен допускать присвоение ему пустых значений...

пасибки, все получилось несколко не так - хватило установки параметра Null=Null, Default=Null - заработало