を作成することはできません私は正確に以下のようにデータベースを作りたかった:のMySQL:エラー番号:105は、テーブル
だから私は各テーブルの主キーと外部キーを定義したかったです。
"都市" の表は、1本のPK(ID)と1 FK(国番号)を持っている
"countrylanguage" テーブルがある2 PK(言語と国番号): はthis回答に基づいて、私はそれを見ました(国番号)
"国" の表は、1本のPK(コード)
を持っており、1 FK は、だから私はトンを試してみましたO「予備加熱」のコードにいくつかの魔法を作る:
CREATE TABLE `City` (
`ID` int(11) NOT NULL,
`Name` varchar(35) NOT NULL ,
`CountryCode` varchar(3) NOT NULL DEFAULT '',
`District` varchar(20) NOT NULL ,
`Population` int(11) NOT NULL ,
PRIMARY KEY(`ID`) ,
FOREIGN KEY(`CountryCode`) REFERENCES `Country`(`Code`)
) ;
CREATE TABLE `CountryLanguage` (
`CountryCode` varchar(3) NOT NULL DEFAULT '',
`Language` varchar(30) NOT NULL ,
`IsOfficial` varchar(30) NOT NULL ,
`Percentage` float(4,1) NOT NULL ,
PRIMARY KEY(`Language`),
FOREIGN KEY(`CountryCode`) REFERENCES `Country`(`Code`)
) ;
CREATE TABLE `Country` (
`Code` varchar(3) NOT NULL DEFAULT '',
`Name` varchar(52) NOT NULL DEFAULT '',
`Continent` varchar(63),
`Region` varchar(26) NOT NULL DEFAULT '',
`SurfaceArea` float(10,2) NOT NULL DEFAULT '0.00',
`IndepYear` smallint(6) DEFAULT NULL,
`Population` int(11) NOT NULL DEFAULT '0',
`LifeExpectancy` float(3,1) DEFAULT NULL,
`GNP` float(10,2) DEFAULT NULL,
`GNPOld` float(10,2) DEFAULT NULL,
`LocalName` varchar(45) NOT NULL DEFAULT '',
`GovernmentForm` varchar(45) NOT NULL DEFAULT '',
`HeadOfState` varchar(60) DEFAULT NULL,
`Capital` int(11) DEFAULT NULL,
`Code2` varchar(2) NOT NULL DEFAULT '',
PRIMARY KEY(`Code`)
) ;
が、私の古き良きmysqlコマンドラインクライアントは、二度同じERROR 1005ものがあり、それがテーブルを作成することができないと言う "test.cityを'と' test.countrylanguage ' は説明としてerrno:150のものを使用しています。
私はここで少し調べて、同じタイプ/パラメータ(INT(2)INT(2)NOT NULL)を持たないテーブル要素に関するいくつかの答えを見つけました。私が見ることのできるように、このようなことはここでは起こりません。
私のコーヒー抜き脳はここでは何が欠けていますか?
ありがとうございます。
これをmysqlとsql-serverとタグ付けすることはできません。一つを選択してください – WillardSolutions
私はそれを削除編集しようとしていた。ごめんなさい。 – Coursal