Mysql
 sql >> база данни >  >> RDS >> Mysql

ГРЕШКА В MySQL 1005:Не може да се създаде таблица (errno:150)

Можете да проверите състоянието на InnoDB (SHOW ENGINE INNODB STATUS ), за да се определи точната причина, поради която ограниченията са неуспешни. Другата опция е да добавите ограниченията на външния ключ след създаване на таблицата.

Във вашия случай изглежда, че ви липсва типът на двигателя. Типовете колони също трябва да съвпадат. Първичният ключ в посочените таблици най-вероятно са NOT NULL , а те не са така в messaInScena .

create table spazio
  (
    nome             varchar(20) NOT NULL primary key, 
    indirizzo        varchar(40) not null,
    pianta           varchar(20),
    capienza         smallint
  ) ENGINE=InnoDB;

create table spettacolo
  (
    titolo             varchar(40) NOT NULL primary key,  
    descrizione        LONGBLOB,
    annoProduzione     char(4)
  ) ENGINE=InnoDB;

create table messaInScena
  (
    data               date,  
    ora                time,
    spazio             varchar(20) NOT NULL,
    spettacolo         varchar(40) NOT NULL,
    postiDisponibili   smallint,
    prezzoIntero       decimal(5,2),
    prezzoRidotto      decimal(5,2),
    prezzoStudenti     decimal(5,2),
    primary key (data, ora, spazio),
    foreign key (spazio) references spazio(nome) 
on update cascade on delete set null,
    foreign key (spettacolo) references spettacolo(titolo) 
on update cascade on delete set null,
    constraint RA3_1 check (postiDisponibili >= 0)     
  ) ENGINE=InnoDB;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Симулиране на паролата() на MySql с помощта на .NET или MS SQL

  2. Извличане на данни от mysql с помощта на php

  3. MYSQL цикъл на курсора, изпълнява един допълнителен кръг, защо?

  4. Импортирайте данни от Excel в MySql с Node JS

  5. MySQL - Условен COUNT с GROUP BY