Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

MySQL ERROR 1005:Không thể tạo bảng (errno:150)

Bạn có thể kiểm tra trạng thái của InnoDB (SHOW ENGINE INNODB STATUS ) để xác định lý do chính xác tại sao các ràng buộc không thành công. Tùy chọn khác là thêm các ràng buộc khóa ngoại sau khi tạo bảng.

Trong trường hợp của bạn, có vẻ như bạn đang thiếu loại động cơ. Các loại cột cũng phải phù hợp. Khóa chính trên các bảng được tham chiếu rất có thể là NOT NULL và chúng không như vậy trong 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. lỗi cú pháp cho khai báo mysql của biến

  2. cách thêm ngày (DateTime.now) vào cơ sở dữ liệu mySql trong C #

  3. Kết quả sql trong bộ nhớ đệm PHP

  4. Truy vấn SQL hoạt động trong phpmyadmin nhưng không hoạt động trong php

  5. Nhân bản, sao chép hoặc sao lưu bảng trong MySQL, MariaDB, Oracle, PostgreSQL, DB2 và SQLite với Tạo bảng dưới dạng SQL