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 ;
почему не вы уронили ключ в таблице один, добавить новый столбец, копировать значения и воссоздать ключ ?, является то, что вы хотите? – jcho360
Обратите внимание, что между таблицами нет никакой связи. То, что вы используете ('KEY'), является другим именем для индекса« INDEX », и только то, что он делает, это его удаление и добавление другого. Если вы хотите, чтобы db обеспечивал целостность через отношения, вы должны (изменить на 'InnoDB' и) использовать ограничения' FOREIGN KEY'. –