MySQL: скопировать поле в другую таблицу - PullRequest
3 голосов
/ 23 марта 2010

У меня есть таблица posts, которая может выглядеть следующим образом:

  id  |  title  |  body  |  created  | ..
-------------------------------------------

Я хотел бы использовать функцию логического поиска, которая предлагается в MyISAM Table, но таблица posts - это InnoDB,Поэтому я создал еще одну таблицу post_contents, которая выглядит следующим образом:

  post_id  |  body
--------------------

Эта таблица уже заполнена некоторым содержимым, и я могу использовать логический поиск.Однако мне нужно также переместить поле заголовка в таблице post_contents, а затем скопировать существующие данные заголовка в новое поле.

Я знаю о синтаксисе INSERT .. SELECT, но мне кажется, чточтобы иметь возможность создать правильный запрос.

Ответы [ 2 ]

2 голосов
/ 23 марта 2010

Я нашел способ:

Я скопировал таблицу post_contents в pc и усек существующие данные в post_contents. Затем я использовал этот запрос

INSERT INTO post_contents (post_id, title, body, created, modified) 
SELECT post.id, post.title, pc.body, pc.draft, pc.created, pc.modified 
FROM posts 
INNER JOIN pc ON post.id = pc.post_id

Может быть, это полезно для других людей:)

2 голосов
/ 23 марта 2010

Вы пробовали

insert into post_contents (post_id, body) select id, body from posts;

Или столбец post_id в таблице post_contents генерируется по-другому?

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