0

以下に示すテーブルは、xxxフィールドを介して接続されています。yyyこのリレーションを削除して、テーブルを再作成せずに (おそらく を使用して)に更新するにはどうすればよいALTERですか? だから、私はそれがキーになることyyyを望んでいますが、通常のフィールドになります。で、おそらく に更新する必要があります。table1xxxtable2yyyPrimary Key

CREATE TABLE IF NOT EXISTS `table1` (
  `id1` smallint(6) NOT NULL AUTO_INCREMENT,
  `xxx` smallint(6) DEFAULT NULL,
  `yyy` varchar(50) DEFAULT NULL,
  PRIMARY KEY (`id1`),
  KEY `xxx` (`xxx`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=15;


CREATE TABLE IF NOT EXISTS `table2` (
  `xxx` smallint(6) NOT NULL,
  `yyy` varchar(50) NOT NULL,
  `zzz` varchar(30) NOT NULL,
  PRIMARY KEY (`xxx`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ;
4

1 に答える 1

1
ALTER TABLE `table1` DROP KEY `xxx`;
ALTER TABLE `table1` ADD KEY `yyy`(`yyy`);
ALTER TABLE `table2` DROP PRIMARY KEY;
ALTER TABLE `table2` ADD PRIMARY KEY (`yyy`);

http://sqlfiddle.com/#!2/87f92/1

于 2012-05-22T20:21:39.247 に答える