我的最后一个外键(FK_kunde_id)在底部我得到以下错误:1215无法添加外键约束。这是我编写SQL编程的第一天,所以我正在努力解决它,但是完全陷入困境。
*我在很多论坛上搜索了外键问题。但是因为它与FK_film_id完全相同,我认为这应该起作用,因为film_id是film.film_id中的主键。
*拼写完全相同。
任何人都知道从下面提供的代码中创建此错误的原因是什么:
create database utleie
create table utleie.kunder (
kunde_id mediumint not null auto_increment,
fnavn varchar(45) not null,
enavn varchar(45) not null,
mobil int(8) null,
epost varchar(45) null,
gate varchar(45) null,
gatenr varchar(5) null,
postnr int null,
primary key (kunde_id) );
create table utleie.postnummerr (
postnr int not null,
poststed varchar(45) not null,
primary key (postnr) );
create table utleie.film (
film_id int not null auto_increment,
tittle varchar(45) not null,
årstall int(4) null,
regisor varchar(45) null,
genre varchar(3) null,
primary key (film_id) );
create table utleie.genre (
genre_code varchar(3) not null,
genre varchar(45) not null,
primary key (genre_code) );
alter table kunder add constraint FK_postnr foreign key (postnr) references postnummerr(postnr);
alter table film add constraint FK_genre foreign key (genre) references genre(genre_code);
create table utleie.utleie_oversikt (
utleie_id int not null auto_increment,
film_id int not null,
kunde_id int not null,
primary key (utleie_id) );
alter table utleie_oversikt
add constraint FK_film_id
foreign key (film_id) references film(film_id);
alter table utleie_oversikt
add constraint FK_kunde_id
foreign key (kunde_id) references kunder(kunde_id);
答案 0 :(得分:0)
外键引用必须是完全相同的类型。在这种情况下,您使用的是mediumint和int,它们的大小不同。
您实际上需要更改创建语句
Vector2 GetPointOnCircle(float radius = 1) {
float randomAngle = UnityEngine.Random.Range(0f, 2 * Mathf.PI - float.Epsilon);
Vector2 pointOnCircle = new Vector2(Mathf.Cos(randomAngle), Mathf.Sin(randomAngle)) * radius;
return pointOnCircle;
}
或者,您可以将其更改为您的幼儿表上的int。