您可以检查InnoDB(
SHOW ENGINE INNODB STATUS)的状态,以确定约束失败的确切原因。另一个选择是在创建表后添加外键约束。
就您而言,您似乎缺少引擎类型。列类型也必须匹配。被引用表上的主键很可能出现
NOT NULL,而在中则不是
messaInScena。
create table spazio ( nome varchar(20) NOT NULL primary key, indirizzo varchar(40) not null, piantavarchar(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;
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)