に参加しませんこれは私のデータベースです:のInnoDBテーブルのための関係を作成するには - 1が
-- Host: localhost
-- Generation Time: Feb 04, 2011 at 01:49 PM
-- Server version: 5.0.45
-- PHP Version: 5.2.5
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
--
-- Database: `myepguide`
--
-- --------------------------------------------------------
--
-- Table structure for table `channel1`
--
CREATE TABLE IF NOT EXISTS `channel1` (
`id` mediumint(255) NOT NULL auto_increment,
`channel` varchar(255) default NULL,
PRIMARY KEY (`id`),
KEY `channel` USING BTREE (`channel`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ;
--
-- Dumping data for table `channel1`
--
INSERT INTO `channel1` (`id`, `channel`) VALUES
(1, '<a href="channel/BBCOne.php">BBC One</a>'),
(3, '<a href="channel/ITV1.php"><i>ITV1</i></a>'),
(2, '<a href="channel/ITV2.php"><i>ITV2 </i></a>');
-- --------------------------------------------------------
--
-- Table structure for table `myepguide`
--
CREATE TABLE IF NOT EXISTS `myepguide` (
`id` mediumint(9) NOT NULL auto_increment,
`programme` varchar(255) NOT NULL,
`channel` varchar(255) default NULL,
`airdate` datetime NOT NULL,
`displayair` datetime NOT NULL,
`expiration` datetime NOT NULL,
`episode` varchar(255) default '',
`setreminder` varchar(255) NOT NULL default '<img src="alert.gif" height="16" width="22"> <a href="setreminder.php" alt="Set a reminder" target="_top">Set Reminder</a>',
PRIMARY KEY (`id`),
KEY `programme1` USING BTREE (`programme`),
KEY `channel2` USING BTREE (`channel`),
KEY `episode` (`episode`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;
--
-- Dumping data for table `myepguide`
--
INSERT INTO `myepguide` (`id`, `programme`, `channel`, `airdate`, `displayair`, `expiration`, `episode`, `setreminder`) VALUES
(1, '<a href="programmes/casualty.php">Casualty</a>', '<a href="lib/channel/ITV1"><i>BBC One </i></a>', '2011-05-18 14:30:00', '2011-05-18 14:30:00', '2011-05-18 15:00:00', 'No Fjords in Finland', '<img src="alert.gif" height="16" width="22"> <a href="setreminder.php" alt="Set a reminder" target="_top">Set Reminder</a>');
-- --------------------------------------------------------
--
-- Table structure for table `episode`
--
CREATE TABLE IF NOT EXISTS `episode` (
`id` mediumint(9) NOT NULL auto_increment,
`episode` varchar(255) default NULL,
PRIMARY KEY (`id`),
KEY `episode` USING BTREE (`episode`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;
--
-- Dumping data for table `episode`
--
INSERT INTO `episode` (`id`, `episode`) VALUES
(1, 'No Fjords in Finland'),
(2, 'Casualty 25th Special'),
(3, '<a href="Holby1.php">Palimpsest</a>');
-- --------------------------------------------------------
--
-- Table structure for table `programme`
--
CREATE TABLE IF NOT EXISTS `programme` (
`id` mediumint(255) NOT NULL auto_increment,
`programme` varchar(255) default NULL,
PRIMARY KEY (`id`),
KEY `programme1` USING BTREE (`programme`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;
--
-- Dumping data for table `programme`
--
INSERT INTO `programme` (`id`, `programme`) VALUES
(1, '<a href="programmes/casualty.php">Casualty</a>');
--
-- Constraints for dumped tables
--
--
-- Constraints for table `myepguide`
--
ALTER TABLE `myepguide`
ADD CONSTRAINT `myepguide_ibfk_1` FOREIGN KEY (`programme`) REFERENCES `myepguide` (`programme`) ON UPDATE CASCADE,
ADD CONSTRAINT `myepguide_ibfk_2` FOREIGN KEY (`channel`) REFERENCES `channel1` (`channel`) ON DELETE SET NULL ON UPDATE CASCADE;
私は「episode`表はphpMyAdminの中で、何らかの理由でテーブルmyepguideでそれにリンクすることができませんそれは常に "関係が追加されていない"と言う。
それを削除して再作成してもうまくいかなかったので、どうすれば修正できますか?
すべてがInnoDBフォーマットに保存されているので、なぜこのようなことが起こったのか分かりません。
ご協力いただきましてありがとうございます。
外部キーは、主キー、または多分独特の列にリンクする必要があります。あなたは 'myepguide'を自分自身にリンクしていますか?どのような関係を達成しようとしているのか説明できますか?プログラムは何をリストしていますか?私のエピソードガイドは何を提示する予定ですか? –
@Damir Sudarevic - いくつかの主キー、つまりエピソードとプログラムテーブルのidフィールドがあります。 – whitstone86