Технологии

Связывание таблиц - вопрос №235117

Не получается связать две таблицы.

1. Создаю таблицу users

CREATE TABLE IF NOT EXISTS `users` (
  `pk_user` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `email` varchar(120) NOT NULL,
  `flname` varchar(100) NOT NULL,
 `clan_name` varchar(50) NOT NULL,
  `password` varchar(64) NOT NULL,
  `country_code` char(2) NOT NULL,
  `usr_ip` varchar(15) DEFAULT NULL,
  `usr_nmb_logins` int(10) unsigned NOT NULL DEFAULT '0',
  `usr_signup_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `usr_userid` varchar(32) DEFAULTNULL,
  `usr_confirm_hash` varchar(255) NOT NULL,
  `usr_is_confirmed` tinyint(1) NOT NULL DEFAULT '0',
  `usr_resetpassword_hash` varchar(255) NOT NULL,
  `usr_is_blocked` tinyint(1) NOT NULL DEFAULT '0',
  `usr_is_admin` tinyint(1) NOT NULL DEFAULT '0',
  PRIMARY KEY (`pk_user`),
  UNIQUE KEY `email` (`email`),
  KEY `country_code` (`country_code`),
  KEY `clan_name` (`clan_name`)
) ENGINE=InnoDB  DEFAULT CHARSET=cp1251 AUTO_INCREMENT=1 ;

2. Создаю таблицу teems_table

CREATE TABLE IF NOT EXISTS `teems_table` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `clan_name` varchar(50) NOT NULL,
  `clan_teg` varchar(10) NOT NULL,
  `captain` varchar(50) NOT NULL,
  `status` varchar(50) NOT NULL,
  PRIMARY KEY (`id`),
 KEY `clan_name` (`clan_name`)
) ENGINE=InnoDB  DEFAULT CHARSET=cp1251 AUTO_INCREMENT=1 ;

3. Хочу связать их:

ALTER TABLE `users`
  ADD CONSTRAINT `table(<== незнаю как правильно создавать внешний ключ)` FOREIGN KEY (`clan_name`) REFERENCES `teems_table` (`clan_name`);

и выводит ошибку:

#1452 — Cannot add or update a child row: a foreign key constraint fails (`dblots`.`#sql-ca8_4f8`, CONSTRAINT `table` FOREIGN KEY (`clan_name`) REFERENCES `teems_table` (`clan_name`))

март 25, 2012 г.

  • Всего ответов: 1

  • Мария - аватарка

    Мария

    492-й в

    Возможно, в одной из этих таблиц есть значение clan_name, которого нет во второй таблице.

    Если это не так, есть смысл проверить, действительно ли создаются таблицы InnoDB, иногда настройки базы таковы, что mysql игнорирует явное указание типа таблиц.
    Посмотрите SHOW WARNINGS;

    сентябрь 21, 2012 г.

Похожие вопросы

Решено

Помогите! чем открыть файл *.zsp

октябрь 30, 2012 г.

Технологии

Создание БД с нуля.

март 15, 2012 г.

Технологии