mySQL: 1) псевдоним одного столбца 2) добавление виртуального столбца - PullRequest
0 голосов
/ 07 февраля 2012

Два вопроса:

1)

Есть несколько таблиц, которые используются в качестве архива для других таблиц.
Для этого есть

INSERT INTO data_archive_table (SELECT * FROM data_table)

Проблема в том, что data_table.id следует сохранить как data_archive_table.old_id.
Есть ли способ написать запрос, который будет выглядеть так: SELECT *, id AS old_id FROM data_table, тогда как столбцы результатов будут иметь ТОЛЬКО столбец old_data, а НЕ исходный столбец id?

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

2)

Я хочу добавить виртуальный столбец с именем deleted_time в запрос вставки, который будет содержать текущее время.
Это можно сделать? если так - как? (учебники будут отличными)

1 Ответ

0 голосов
/ 07 февраля 2012

Попробуйте это:

1.) Вы можете использовать что-то вроде этого запроса:

INSERT INTO data_archive_table
SELECT id AS old_id  -- be sure that data_archive_table has column oldID
       ,... -- You need to specify the names of the columns
FROM data_table
WHERE id = 'IDHERE' -- If you want to have condition.

2.) Для этого вы можете добавить значение непосредственно в оператор выбора

INSERT INTO `tableName`
SELECT colA,
       colB,
       , ...
       , NOW() as deleted_time -- NOW() is a function in MySQL
FROM `sourceTable`
WHERE colA = 'IDHERE' -- If you want to have condition.

СЕЙЧАС () в MySQL

...