SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 03.10.2011 21:24:23

Anubys
Участник
Зарегистрирован: 03.10.2011
Сообщений: 1

Can't create table 'films.#sql-6c4_7' (errno: 150)

Создаю таблицы и при установлении связи между ними выбрасывает такую ошибку (см. название темы) помогите пожалуйста


CREATE TABLE news_portal
(id INT AUTO_INCREMENT,
title VARCHAR(100),
description TEXT,
date DATE,
author VARCHAR(30),
author_id INT,
PRIMARY KEY (id))
ENGINE InnoDB CHARACTER SET utf8;

CREATE TABLE screens
(id INT AUTO_INCREMENT,
serieID INT,
reliz_id INT,
full_image_location TEXT,
prev_location TEXT,
PRIMARY KEY(id))
ENGINE InnoDB CHARACTER SET utf8;

CREATE TABLE user_list
(id INT AUTO_INCREMENT,
login VARCHAR(15),
password VARCHAR(255),
ban BOOL,
avatar_image VARCHAR(255),
avatar_location VARCHAR(255),
total_news INT,
total_relizes INT,
total_coments INT,
user_class VARCHAR(20),
user_status VARCHAR(20),
sex VARCHAR(6),
PRIMARY KEY(id))
ENGINE InnoDB CHARACTER SET utf8;

CREATE TABLE series
(id INT AUTO_INCREMENT,
reliz_id INT,
serial_number INT,
serial_title VARCHAR(50),
original_title VARCHAR(50),
description TEXT,
technical_date TEXT,
PRIMARY KEY(id))
ENGINE InnoDB CHARACTER SET utf8;

ALTER TABLE screens
ADD FOREIGN KEY(reliz_id)
REFERENCES relizes(id)
ON DELETE CASCADE;




Комментарий модератора:
Все возможные причины ошибки (errno: 150) рассмотрены в статье:
Ошибки внешних ключей: errno 150, MySQL error 1005 и другие

Неактивен

 

#2 03.10.2011 21:40:27

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Can't create table 'films.#sql-6c4_7' (errno: 150)

А где описание таблицы relizes?

Неактивен

 

#3 03.10.2011 21:53:30

evgeny
Гуру
Зарегистрирован: 04.05.2009
Сообщений: 335

Re: Can't create table 'films.#sql-6c4_7' (errno: 150)

Такая ошибка может выходить если структура screens.reliz_id и relizes.id не идентична.

Неактивен

 

#4 03.10.2011 22:07:11

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Can't create table 'films.#sql-6c4_7' (errno: 150)

Такая ошибка может иметь множество причин. Например, отсутствие предварительного ключа на reliz_id, если версия MySQL старая.
Чтобы не гадать, лучше сразу смотреть show innodb status; после неудачной попытки создания внешнего ключа.

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson