SQL:表改变

时间:2012-05-22 20:12:01

标签: mysql create-table alter

以下显示的表格通过xxx字段连接。如何删除此关系并将其更新为yyy而无需重新创建表(可能使用ALTER)? 所以,我希望yyytable1为关键字,而xxx只是常规字段。在table2我应该将yyy更新为Primary 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 ;

1 个答案:

答案 0 :(得分: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