Я нуждаюсь в быстром пути дубликат столбец DATETIME в таблице и даю ему новое имя.
У меня есть столбец, названный myDate в моей таблице, названной myResults, мне нужен запрос для создания нового столбца в таблице названным newDate, который имеет те же самые данные как myDate столбец.
Существует ли более быстрый способ сделать, это, чем путем выполнения очевидных 2 подходов шага делает новый столбец и затем копирование всех данных (это - большая таблица, и я ищу самый быстрый подход)?
Очевидное решение:
ALTER TABLE `myResults` ADD `newDate` DATETIME;
UPDATE `myResults` SET `newDate` = `myDate`;
Очевидное решение, к сожалению, единственное.
Однако обратите внимание, что в целом не следует копировать колонку в реляционных БД.
Почему ваша рабочая нагрузка когда-либо требует нового 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;
Если вам просто нужно значение по умолчанию, вы можете либо выбрать статическое значение по умолчанию, либо использовать вызов функции.
ALTER TABLE `myResults` ADD `newDate` DATETIME DEFAULT '2010-01-01';
или
ALTER TABLE `myResults` ADD `newDate` DATETIME DEFAULT current_timestamp;