sql >> Database teknologi >  >> RDS >> Mysql

MySQL FEJL 1005:Kan ikke oprette tabel (fejlnr:150)

Du kan kontrollere status for InnoDB (SHOW ENGINE INNODB STATUS ) for at bestemme den nøjagtige årsag til, at begrænsningerne fejler. Den anden mulighed er at tilføje begrænsningerne for fremmednøgle efter oprettelse af tabellen.

I dit tilfælde ser det ud til, at du mangler motortypen. Kolonnetyperne skal også matche. De primære nøgler på de refererede tabeller er højst sandsynligt NOT NULL , og det er de ikke i 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. Opretter forbindelse til en MySQL-server ved hjælp af C++

  2. Bedste måde at fortælle, at 3 eller flere på hinanden følgende poster mangler

  3. Grundlæggende DB-forbindelsespulje med Java og Tomcat 7

  4. opdatere med join statement mysql?