2012-05-22 4 views
0

Нижеуказанные таблицы подключаются через поле xxx. Как я могу отбросить это отношение и обновить его до yyy без повторного создания таблиц (возможно, используя ALTER)? Итак, я хочу, чтобы yyy в table1 был бы ключом, а xxx стал обычным полем. В table2 я должен, вероятно, обновить yyy до Primary Key.SQL: изменение таблицы

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 ; 
+0

почему не вы уронили ключ в таблице один, добавить новый столбец, копировать значения и воссоздать ключ ?, является то, что вы хотите? – jcho360

+2

Обратите внимание, что между таблицами нет никакой связи. То, что вы используете ('KEY'), является другим именем для индекса« INDEX », и только то, что он делает, это его удаление и добавление другого. Если вы хотите, чтобы db обеспечивал целостность через отношения, вы должны (изменить на 'InnoDB' и) использовать ограничения' FOREIGN KEY'. –

ответ