Есть несколько других запросов stackoverflow по этой теме, но ни один из них не имеет удовлетворительного ответа.В sqlite3: скопируйте столбец из одной таблицы в другую таблицу
У меня есть таблица BeerReviews, в которой отсутствует столбец (review_text), а другая таблица BeerReviewsWithText, которая не имеет другого столбца (имя пивоварни). В противном случае строки таблицы упорядочиваются одинаково, поэтому я хотел бы просто добавить столбец brewery_name из BeerReviews в BeerReviewsWithText.
запускает sqlite3 как:
sqlite3 beer_rewiews_with_text.sqlite
Тогда я прилагаю таблицу обзоров пива через:
attach 'beer_reviews.sqlite' as BR
я добавил пустую колонку в BeerReviewsWithText через:
alter table BeerReviewsWithText add column beer_brewername varchar;
Multipleother вопросы предлагают использовать вставку для заполнения столбца, но это добавляет новые строки в таблицу, заполняя только столбец beer_brewername.
insert into BeerReviewsWithText(beer_brewername) select brewery_name from BeerReviews;
Вместо этого, обновление, кажется, чтобы заполнить пустые значения, но когда я запускаю следующее (по аналогии с another question's answer) все значения beer_brewername идентичны:
update BeerReviewsWithText set beer_brewername=(select brewery_name from BR.BeerReviews);
Это кажется странным поведением так как я получаю ожидаемый список имен пивоварни, когда я бегу:
select brewery_name from BR.BeerReviews limit 50;
Я новичок в SQLite, так что кто-то может объяснить, что я делаю неправильно?
ОК, так что я бегу, после которого берет в _incredibly_ долгое время: ' update main.BeerReviewsWithText set beer_brewername = (выберите brewery_name из BR.BeerReviews, где brewery_id = main.BeerReviewsWithText.beer_brewerid); ' Поля brewery_id и beer_brewerid все соответствуют строке в строке, но не являются уникальными идентификаторами по строкам, поскольку каждая пивоварня имеет много обзоров. Надеюсь, все в порядке? –
Пока идентификатор пивоваренного завода однозначно идентифицирует название пивоваренного завода, все в порядке. Для эффективного поиска вам нужен индекс в столбце 'brewery_id'. –
После добавления индексов в оба столбца id обновление выполнялось в разумные сроки. Мне нужно будет немного почитать о том, как это ускоряется. Еще раз спасибо! –