0

外部キーを設定しようとすると、エラー番号 150 がスローされます。

スキーマの作成に失敗しました: テーブル 'db_2_f856e.urlnames' を作成できません

これはコードです:

create table images(
     id int auto_increment primary key
    ,gender varchar(6)
    ,pattern varchar(50)
    ,item_name varchar(25)
    ,url_id int(250)
)//

create table urlnames(
     url_id_no int(250)
    ,url varchar(250)
    ,foreign key (url_id_no) references images(url_id)
)//

誰かがそれが機能しない理由を説明できますか?

ありがとう

4

1 に答える 1

1

あなたのデータ構造は意味がありません。私はあなたが欲しいと思います:

create table urlnames(
     url_id_no int auto_increment primary key,
     url varchar(250)
);

create table images(
     image_id int auto_increment primary key,
     gender varchar(6),
     pattern varchar(50),
     item_name varchar(25),
     url_id int(250) references urlnames(url_id_no)
);

外部キー参照によって参照される列は、主キーまたは一意のキーである必要があります。また、urlnamesそのid列を主キーとして宣言する必要があります。

SQL Fiddle の例を次に示します

于 2014-10-27T12:08:05.463 に答える