bestsource

MySQL 테이블에 열의 복사본을 빠르게 추가합니다.

bestsource 2023. 10. 31. 22:27
반응형

MySQL 테이블에 열의 복사본을 빠르게 추가합니다.

테이블에 DATTIME 컬럼을 빠르게 복제해서 새로운 이름을 붙여야 합니다.

제 테이블에 myResults라는 이름의 열이 있습니다. 제 테이블에 myDate 열과 데이터가 정확히 같은 newDate라는 새로운 열을 만들기 위해 쿼리가 필요합니다.

새 열을 만들고 모든 데이터를 복사하는 2단계 접근 방식보다 더 빠른 방법이 있습니까?(큰 테이블이고 가장 빠른 접근 방식을 찾고 있습니다)

명백한 해결책:

 ALTER TABLE `myResults` ADD `newDate` DATETIME;  
 UPDATE `myResults` SET `newDate` = `myDate`;
UPDATE `table_name` SET `new_column` = `existing_column` WHERE `id`=`id`

유감스럽게도 분명한 해결책이 유일한 해결책입니다.

그러나 일반적으로 관계형 데이터베이스의 열을 복사해서는 안 됩니다.

기본값이 필요한 경우 기본값을 정적으로 선택하거나 함수 호출을 사용할 수 있습니다.

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

아니면

ALTER TABLE `myResults` ADD `newDate` DATETIME DEFAULT current_timestamp;

워크로드에서 다른 열 데이터를 복제하는 새로운 날짜 시간 열을 요구하는 이유는 무엇입니까?끔찍한 연습처럼 들리는데요?당신이 이루고자 하는 것을 우리에게 말하는 것은 어떻습니까?데이터를 실제로 복제하지 않고 몇 가지 다른 방법으로 동일한 데이터로 두 번째 열을 끌 수 있습니다.

SELECT date1 AS date_old, date1 AS date_new FROM table;

-또는- 보기를 작성할 수 있습니다.

CREATE VIEW virtual_table AS
    SELECT date1 AS date_old, date1 AS date_new FROM table
;
SELECT * FROM virtual_table;

언급URL : https://stackoverflow.com/questions/2185458/quickly-add-a-copy-of-a-column-to-a-mysql-table

반응형