powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Пресловутая ошибка errno: 150
9 сообщений из 34, страница 2 из 2
Пресловутая ошибка errno: 150
    #38790183
Serega-MC
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Таже ошибка, мой пример.

CREATE TABLE IF NOT EXISTS dev_names
(
num INT NOT NULL AUTO_INCREMENT,
dev_type VARCHAR(15) NOT NULL,
dev_name ENUM('t_sns','l_sns','w_sns','wet_sns','switch','controller') NOT NULL,
PRIMARY KEY (num)
) ENGINE=InnoDB CHARACTER SET=UTF8;

CREATE TABLE IF NOT EXISTS dev_types
(
dev_num INT NOT NULL AUTO_INCREMENT,
dev_id VARCHAR(15) NOT NULL,
dev_type ENUM('t_sns','l_sns','w_sns','wet_sns','switch','controller') NOT NULL,
PRIMARY KEY (dev_num),
FOREIGN KEY (dev_type) REFERENCES dev_names(dev_type)
ON DELETE CASCADE
ON UPDATE CASCADE
) ENGINE=InnoDB CHARACTER SET=UTF8;

Подскажите что неправильно почему возникает эта ошибка ?
...
Рейтинг: 0 / 0
Пресловутая ошибка errno: 150
    #38790269
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Serega-MCПодскажите что неправильноенум ссылается на варчар
...
Рейтинг: 0 / 0
Пресловутая ошибка errno: 150
    #38794643
Николай Ч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ребят, а что с этим не так? Версия 5.1.53
Моск уже из ушей течет.(((

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
CREATE TABLE IF NOT EXISTS `users` (
  `id` int(5) NOT NULL AUTO_INCREMENT,
  `login` varchar(20) NOT NULL DEFAULT '',
  `password` varchar(50) NOT NULL,
  `role` enum('all','trusted') NOT NULL,
  PRIMARY KEY (`id`),
  KEY `login` (`login`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;


CREATE TABLE IF NOT EXISTS `irb_comments_` (
  `id` int(5) NOT NULL AUTO_INCREMENT,
  `id_parent` int(5) NOT NULL DEFAULT '0' COMMENT 'users',
  `owner` varchar(250) NOT NULL DEFAULT '',
  `author` varchar(20) NOT NULL DEFAULT '',
  `text` text NOT NULL,
  PRIMARY KEY (`id`),
  KEY `id_parent` (`id_parent`),
  KEY `owner` (`owner`),
  KEY `author` (`author`),
   FOREIGN KEY (`id_parent`, `author`) REFERENCES `irb_users`(`id`, `login` ) ON DELETE CASCADE ON UPDATE CASCADE
)ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=1
...
Рейтинг: 0 / 0
Пресловутая ошибка errno: 150
    #38794644
Николай Ч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Там в первом запросе таблица не та, но не в этом дело, это просто опечатка.
...
Рейтинг: 0 / 0
Пресловутая ошибка errno: 150
    #38794696
Николай Ч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Решил двумя ключами вместо одного составного.
...
Рейтинг: 0 / 0
Пресловутая ошибка errno: 150
    #38794716
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Николай ЧРешил двумя ключами вместо одного составного.Только это логически не эквивалентно.

Подозреваю, не хватало индекса по паре полей (`id`, `login`). Но лучше показывайте полное сообщение об ошибке.
...
Рейтинг: 0 / 0
Пресловутая ошибка errno: 150
    #38794976
Николай Ч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Оттож! Огромный респект. Всё как обычно просто)))
...
Рейтинг: 0 / 0
Пресловутая ошибка errno: 150
    #38898934
Mysql_user
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте!
Ошибка та же : ERROR 1005 (HY000) at line 31: Can't create table ' ' (errno: 150)
Код: sql
1.
2.
3.
  FOREIGN KEY (1_id)  REFERENCES table_1 (1_id),
  FOREIGN KEY (2_id)  REFERENCES table_2 (2_id),      
  FOREIGN KEY (3_id)  REFERENCES table_3 (3_id) 



Поля 1,2,3 _id являются первичными в своих таблицах. В третьей таблице лежат внешние ключи, имеющие те же имена и типы. В чём может быть проблема - в совпадении имен?

Заранее спасибо.
...
Рейтинг: 0 / 0
Пресловутая ошибка errno: 150
    #38899423
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mysql_user,

Во-первых, сделайте имена констрейнтов и имена полей разными.
Во-вторых, использовать имена, начинающиеся с цифры - плохая практика, хотя формально и не запрещено. Но если очень хочется - возьмите хотя бы в кавычки `1_id`, чтобы разночтений не возникало.
...
Рейтинг: 0 / 0
9 сообщений из 34, страница 2 из 2
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Пресловутая ошибка errno: 150
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]