Проблема при создании внешнего ключа

Azy

Новичок
Проблема при создании внешнего ключа

MySQL 4.1.10

Есть следующие таблицы.
PHP:
CREATE TABLE `users` (
  `id` int(11) unsigned NOT NULL auto_increment,
  `name` varchar(100) NOT NULL default '',
  `login` varchar(100) default NULL,
  `password` varchar(100) NOT NULL default '',
  `group_id` int(11) NOT NULL default '0',
  PRIMARY KEY  (`id`),
  UNIQUE KEY `Unique` (`login`),
  KEY `group` (`group_id`)
) ENGINE=InnoDB DEFAULT CHARSET=cp1251

CREATE TABLE `groups` (
  `id` int(10) unsigned NOT NULL auto_increment,
  `name` varchar(100) NOT NULL default '',
  PRIMARY KEY  (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=cp1251
при попытке выполнить
PHP:
ALTER TABLE users ADD CONSTRAINT group1 FOREIGN KEY group_id REFERENCES groups(id) ON DELETE RESTRICT ON UPDATE CASCADE
выводит

PHP:
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'REFERENCES groups(id) ON DELETE RESTRICT ON UPDATE CASCADE' at line 1
Хотя по синтаксису вроде ве верно (
 

_RVK_

Новичок
Я вот с внешними ключами в mysql не работал но что-то мне подсказывает что в конструкции FOREIGN KEY group_id нужны скобки.
 

Azy

Новичок
ERROR 1005 (HY000): Can't create table './managers/#sql-3f0_1c54f.frm' (errno: 150)

Теперь новая фишка. В мане в комментах сказано о том, что это лечится проставлением индекса на поля, объявляемые как внешние ключи. Поставил - не помогает.

-~{}~ 08.08.05 16:08:

Few.... Сорь... Поставил users.group_id Unsigned все заработало. Спасибо.
 
Сверху