Создание новой таблицы «многие ко многим» - PullRequest
1 голос
/ 09 сентября 2010

У меня есть база данных Class_Books, которая связывает номера ISBN (из таблицы Books) с Class_ID (из таблицы Classes). Я изменяю свою таблицу Books, поэтому первичный ключ - это Book_ID (автоинкремент INT) вместо ISBN. Есть ли способ обновить Class_Books, чтобы он теперь использовал Book_ID?

1 Ответ

1 голос
/ 09 сентября 2010

MySQL поддерживает многотабличный синтаксис UPDATE, который значительно упрощает этот тип работы.

ALTER TABLE Class_Books ADD COLUMNS Book_Id INT; -- nullable

UPDATE Books b JOIN Class_Books cb ON b.ISBN = cb.ISBN
SET cb.Book_Id = b.Book_Id;

Затем вы можете использовать ALTER TABLE, чтобы изменить ограничения, сделать cb.Book_Id NOT NULL и удалить cb.ISBN.

PS: я рекомендую называть Class_Books таблицей «многие ко многим» или таблицей пересечения . Слово отношение означает нечто иное в теории отношений, и оно не имеет ничего общего с отношениями между таблицами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...