Быстро добавьте копию столбца к таблице MySQL

Я нуждаюсь в быстром пути дубликат столбец DATETIME в таблице и даю ему новое имя.

У меня есть столбец, названный myDate в моей таблице, названной myResults, мне нужен запрос для создания нового столбца в таблице названным newDate, который имеет те же самые данные как myDate столбец.

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

Очевидное решение:

 ALTER TABLE `myResults` ADD `newDate` DATETIME;  
 UPDATE `myResults` SET `newDate` = `myDate`;
27
задан Lelio Faieta 31 December 2018 в 14:47
поделиться

3 ответа

Очевидное решение, к сожалению, единственное.

Однако обратите внимание, что в целом не следует копировать колонку в реляционных БД.

18
ответ дан 28 November 2019 в 05:32
поделиться

Почему ваша рабочая нагрузка когда-либо требует нового dateTime Столбец, что дублирует другие столбцы данных? Это звучит как ужасная практика? Как рассказать нам, что вы пытаетесь достичь? Вы можете потянуть второй столбец с теми же данными несколькими разными способами, не дублирующими данные:

SELECT date1 AS date_old, date1 AS date_new FROM table;

-OR-, вы можете создать View

CREATE VIEW virtual_table AS
    SELECT date1 AS date_old, date1 AS date_new FROM table
;
SELECT * FROM virtual_table;
2
ответ дан 28 November 2019 в 05:32
поделиться

Если вам просто нужно значение по умолчанию, вы можете либо выбрать статическое значение по умолчанию, либо использовать вызов функции.

ALTER TABLE `myResults` ADD `newDate` DATETIME DEFAULT '2010-01-01';

или

ALTER TABLE `myResults` ADD `newDate` DATETIME DEFAULT current_timestamp;
1
ответ дан 28 November 2019 в 05:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: