Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Ошибка в MySQL при создании инструкции

Автор вопроса: user2862454Ответов: 1

У меня есть сомнения, что я делаю неправильно со следующим оператором таблицы:

MySQL возвращает ошибку 150

DROP table usuario;
DROP table MiTabla;

CREATE TABLE usuario(
id smallint unsigned auto_increment primary key,
name varchar(20) not null
)ENGINE=InnoDB;

Insert into usuario (NAME) VALUES ('Antonio'),('Jose'),('Manuel');


CREATE TABLE MiTabla(
id smallint unsigned auto_increment primary key,
name varchar(20) not null,
foreign key (name) REFERENCES usuario (name)
) ENGINE = InnoDB;
  • Мое сомнение приходит в заявлении внешнего ключа user2862454 28.06.2015
  • Вы искали в Stackoverflow? Кажется, было несколько сообщений об ошибке 150. jcoppens 28.06.2015

ddl

Ответы

Ответ 1 · Gordon Linoff

Вы не можете добавить отношение внешнего ключа только к любому столбцу. Он должен иметь индекс. Самый самый простой метод:

CREATE TABLE usuario (
  id smallint unsigned auto_increment primary key,
  name varchar(20) not null unique
);

Однако правильный метод заключается в использовании первичных ключей для связи:

CREATE TABLE MiTabla(
  id smallint unsigned auto_increment primary key,
  usuario_id smalling unsigned not null,
  foreign key (usuario_id) REFERENCES usuario(id)
);

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы