2

私は2つのテーブルリングとスタイルを持っています。

CREATE TABLE IF NOT EXISTS `ring` (
  `jewelry_id` int(11) NOT NULL auto_increment,
  `ring_id` varchar(50) NOT NULL,
  `性別` varchar(10) NOT NULL,
  `description` テキスト NOT NULL,
  `image` varchar(100) NOT NULL,
  `type` テキスト NOT NULL,
  主キー (`jewelry_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1;

スタイルテーブルは

CREATE TABLE IF NOT EXISTS `style` (
  `style_id` int(11) NOT NULL AUTO_INCREMENT,
  `style` テキスト NOT NULL,
  `jewelry_id` int(11) NOT NULL,
  主キー (`style_id`)、
  KEY `jewelry_id` (`jewelry_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1;

スタイル テーブルに外部キーを追加すると、エラーが発生します。

ALTER TABLE `スタイル`
  追加制約 `style_ibfk_1` 外部キー (`jewelry_id`) REFERENCES `ring` (`jewelry_id`) ON UPDATE CASCADE の DELETE CASCADE;

エラーは

#1005 - テーブル './j_jewelry/#sql-2c3b_750.frm' を作成できません (errno: 150) (詳細...</a>)
4

3 に答える 3

3

MyISAM テーブルは外部キーをサポートしていません。両方のテーブルを InnoDB にします。

于 2011-01-21T05:18:12.573 に答える
0

外部キー参照の場合、テーブル タイプは次のようにする必要があります。INNODB

于 2011-01-21T05:27:55.177 に答える