Как получить DDL запроса на выборку - PullRequest
0 голосов
/ 24 января 2020

Можно ли получить DDL для запроса вместо таблицы? Сокращенный (вымышленный) пример того, что я хотел бы сделать:

SHOW CREATE TABLE (
  SELECT id,
         name,
         description
    FROM person
    JOIN meta ON meta.person_id = person.id
)

Причина, по которой я хочу это сделать, заключается в том, что мне нужно перенести и перенести много данных в новую систему базы данных, и работая над этим, я должен (пере) сделать много временных таблиц в моей новой базе данных. Мне бы не хотелось каждый раз разбираться с командой create table вручную.

1 Ответ

1 голос
/ 24 января 2020

Возможно, самым близким к тому, что вам нужно, может быть создание временных таблиц, используя выбранный вами выбор, затем используйте SHOW CREATE TABLE:

CREATE TEMPORARY TABLE IF NOT EXISTS temp AS (
    SELECT id, name, description
    FROM person p
    JOIN meta m ON m.person_id = p.id
);

И затем:

SHOW CREATE TABLE temp;

Если вам не нужна таблица, возможно, из-за нехватки места, используйте трюк LIMIT для создания таблицы из одной записи:

CREATE TEMPORARY TABLE IF NOT EXISTS temp AS (
    SELECT id, name, description
    FROM person p
    JOIN meta m ON m.person_id = p.id
    LIMIT 1
);

Затем удалите временную таблицу после того, как вы скопировали DDL.

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