SQL: ароматы INSERT INTO - PullRequest
       9

SQL: ароматы INSERT INTO

0 голосов
/ 12 декабря 2010

(MySQL) Я пытаюсь перенести таблицу «подписка» в 3 новые таблицы: «продукт», «подписка», «факт», где «факт» - это название фактического продукта, скажем, информационный бюллетень.Подписка имеет ссылку FK на продукт, а фактическая ссылка FK включена в подписку.

Я знаю, что оператор INSERT INTO SELECT может копировать данные, вероятно, из многих таблиц в одну;есть ли заявление, чтобы сделать обратное, один ко многим таблицам для моего случая?

Ответы [ 2 ]

0 голосов
/ 12 декабря 2010

Я не знаю SQL-оператора, который будет делать то, что вы хотите.Просто сделайте несколько INSERT INTO SELECTs один за другим.В любом случае это может быть быстрее сделать их по одному.

0 голосов
/ 12 декабря 2010

Я думаю, вы можете использовать три отдельных вставки в операторах выбора.Сначала вы преобразуете таблицу продуктов, затем подписку, в которой вы можете использовать встроенный выбор, чтобы найти идентификатор в таблице продуктов:

insert into subscription (some_column, FK_id,...)
select something, (select id from product where <your where clause>),... 

, и, наконец, преобразовать фактическую таблицу, используя встроенный выбор, чтобы получить идентификатор изтаблица подписки.

...