Прежде всего, конечно, я искал другие сообщения об этой проблеме (их много), но я должен сказать, что до сих пор ничего не было сделано для меня. Единственное, что я не пробовал, - отключить внешний чек.Проблемы с ошибкой MYSQL 150
Моя проблема: Когда я пытаюсь создать две простые таблицы, я получил ошибку 150, и я не могу понять, почему.
Мой код до сих пор:
drop table if exists SENSOR;
drop table if exists SENSOR_DATEN;
create table SENSOR (
SENSOR_ID int not null auto_increment,
SENSOR_NAME varchar(100),
SENSOR_POSX float not null,
SENSOR_POSY float not null,
SENSOR_EINHEIT varchar(100) not null,
primary key (SENSOR_ID)
);
commit;
create table SENSOR_DATEN (
SENSOR_DATEN_ID int not null auto_increment,
SENSOR_ID int not null,
SENSOR_DATEN_WERT varchar(100),
SENSOR_TYP varchar(100) not null,
primary key (SENSOR_DATEN_ID),
foreign key(SENSOR_ID) references SENSOR(SENSOR_ID),
foreign key(SENSOR_TYP) references SENSOR(SENSOR_EINHEIT)
);
commit;
Мой mainproblem, чтобы понять проблему. Я получил большую базу данных, почти идентичную, но проблем нет. Вот код для базы данных, который отлично работает:
drop table if exists AUSGELIEHEN_FILM;
drop table if exists AUSGELIEHEN_SPIEL;
drop table if exists KUNDE;
drop table if exists FILM;
drop table if exists SPIEL;
create table KUNDE (
KUNDE_ID int not null auto_increment,
KUNDE_VNAME varchar(100),
KUNDE_NAME varchar(100),
KUNDE_ADRESSE varchar(100),
KUNDE_PLZ int not null,
primary key (KUNDE_ID)
);
create table FILM (
FILM_ID int not null auto_increment,
FILM_NAME varchar(100),
FILM_GENRE varchar(50),
FILM_FSK int not null,
FILM_BEWERTUNG int not null,
FILM_ANZAHL int not null,
FILM_MEDIUM varchar(50),
primary key (FILM_ID)
);
create table SPIEL (
SPIEL_ID int not null auto_increment,
SPIEL_NAME varchar(100),
SPIEL_GENRE varchar(50),
SPIEL_FSK int not null,
SPIEL_BEWERTUNG int not null,
SPIEL_ANZAHL int not null,
SPIEL_PLATFORM varchar(50),
primary key (SPIEL_ID)
);
create table AUSGELIEHEN_FILM (
AUSGELIEHEN_FILM_ID int not null auto_increment,
KUNDE_ID int not null,
FILM_ID int not null,
AUSGELIEHEN_ANZAHL int not null,
primary key(AUSGELIEHEN_FILM_ID),
foreign key(KUNDE_ID) references KUNDE(KUNDE_ID),
foreign key(FILM_ID) references FILM(FILM_ID)
);
create table AUSGELIEHEN_SPIEL(
AUSGELIEHEN_SPIEL_ID int not null auto_increment,
KUNDE_ID int not null,
SPIEL_ID int not null,
AUSGELIEHEN_ANZAHL int not null,
primary key(AUSGELIEHEN_SPIEL_ID),
foreign key(KUNDE_ID) references KUNDE(KUNDE_ID),
foreign key(SPIEL_ID) references SPIEL(SPIEL_ID)
);
commit;
благодарит за вашу помощь.
Ваш внешний ключ должен быть первичным ключом в таблице ссылок. Эта строка вызывает вашу проблему: ссылки на внешний ключ (SENSOR_TYP) SENSOR (SENSOR_EINHEIT) ' – Uriil