У меня есть две таблицы MySQL A
и B
. Таблица A
содержит член ref
, который является ссылкой ForeignKey на B.id
. Это создает связь 1: много между B
и A
.
Это было в производстве в течение нескольких недель, но теперь я добавляю больше функций в свой код и понял, что я неправильно понял свое первоначальное отображение. Мне нужно было много: 1 отношений между B
и A
. То есть B.ref
должен указывать на A.id
, а не наоборот. До сих пор это не было проблемой, потому что до сих пор было все 1: 1. Как перенести мои данные в новую схему?
Я бы догадался:
ALTER TABLE B ADD COLUMN ref INTEGER CONSTRAINT FOREIGN KEY (A.id)
- сначала добавить столбец
- Запустите SQL-эквивалент "
for row in A: row.ref.ref = row
"
ALTER TABLE A DROP COLUMN ref
Попытка сделать это в SQLAlchemy завершается неудачно с ошибкой циклической ссылки. Мне нужно сделать это в SQL, но я не знаком с необходимым синтаксисом SELECT + UPDATE. Помощь