私はこれに2日間頭をぶつけていて、ついに助けを求めました.
物事をシンプルにするために最小限のデータで 2 つのテスト テーブルを作成したので、少なくとも何かを作成する必要があり、Web サイトにデータを取り込むために使用できる 3 つ目のテーブルを作成したいと考えています (クエリを作成したいと考えています)。後で別のテーブルからデータを取得できますが、今のところこれを行う必要があります)。
最初のテーブル用にエクスポートした情報は次のとおりです。
CREATE TABLE `about` (
`about_id` smallint(5) unsigned NOT NULL AUTO_INCREMENT,
`about_title` varchar(50) NOT NULL,
`about_description` text NOT NULL,
`creator_id` smallint(5) unsigned NOT NULL,
`about_image` varchar(150) NOT NULL,
PRIMARY KEY (`about_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;
INSERT INTO `about` (`about_id`, `about_title`, `about_description`, `creator_id`, `about_image`) VALUES
(1, 'Exciter', 'This is an awesome album', 1, 'images/depeche_mode_exciter.jpg'),
(2, 'Autobahn', 'This is a great album', 2, 'images/kraftwerk_autobahn.jpg');
2 番目の TABLE 用にエクスポートした情報は次のとおりです。
CREATE TABLE `creator` (
`creator_id` smallint(5) unsigned NOT NULL AUTO_INCREMENT,
`creator_name` varchar(50) NOT NULL,
PRIMARY KEY (`creator_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;
INSERT INTO `creator` (`creator_id`, `creator_name`) VALUES
(1, 'Depeche Mode'),
(2, 'Kraftwerk');
そして、これは、creator_idをDepeche Modeまたはアーティストがcreator_id行にあるものに変える新しいTABLEを作成するために使用しようとしたものの最新バージョンです。
CREATE TABLE `about_creator` (
`about_id` smallint(5) unsigned NOT NULL AUTO_INCREMENT,
`about_title` varchar(50) NOT NULL,
`about_description` text NOT NULL,
`about_image` varchar(150) NOT NULL,
`creator_id` smallint(5) unsigned NOT NULL,
PRIMARY KEY (`about_id`)
FOREIGN KEY (`creator_id`) REFERENCES `creator` (`creator_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
真剣に、確かにそれほど簡単にはなりませんが、試してみるたびに次のエラーが発生します。
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FOREIGN KEY (`creator_id`) REFERENCES `creator` (`creator_id`) ) ENGINE=InnoDB ' at line 8
MAMPバージョン2.0で実行されているphpMyAdmin 3.5.4からPHPバージョン5.4.4にアクセスしています
どんな助けでも大歓迎です。