sql >> Databasteknik >  >> RDS >> Mysql

MySQL ERROR 1005:Kan inte skapa tabell (errnr:150)

Du kan kontrollera statusen för InnoDB (SHOW ENGINE INNODB STATUS ) för att fastställa den exakta orsaken till att begränsningarna misslyckas. Det andra alternativet är att lägga till begränsningarna för främmande nyckel efter att ha skapat tabellen.

I ditt fall verkar det som att du saknar motortypen. Kolumntyperna måste också matcha. Primärnycklarna i de refererade tabellerna är troligen NOT NULL , och de är inte så 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. Lagra PHP-kod på MySQL och få den att köra

  2. Hur kan jag importera en databas med MySQL från terminal?

  3. Åtkomst nekas när en databas bifogas

  4. Använd php mysqli skapa reskontrabok och få balans enligt DR och CR