«alter-table» 태그된 질문

기존 테이블 오브젝트를 변경하는 데 사용되는 SQL 문.

3
단일 명령으로 데이터베이스의 모든 테이블 수정
데이터베이스 내의 모든 테이블을 수정하는 단일 또는 한 줄 명령이 있습니까? 데이터베이스의 모든 테이블에서이 명령을 실행하고 싶습니다. ALTER TABLE `table_name` CONVERT TO CHARACTER SET utf8; 내 목표는 문자 집합을 latin1에서 utf8로 모든 테이블로 수정하는 것입니다. 업데이트 : RDBMS는 MySQL입니다

2
600GB 테이블 인덱스 키 데이터 유형을 INT에서 BIGINT로 변경하는 가장 빠른 방법
600GB MySQL 테이블에서 데이터 유형을 INT에서 BIGINT로 변경해야합니다. 이 열에는 고유 한 인덱스가 있습니다. 나는 서명되지 않은 INT를 사용하는 것이 좋지만 BIGINT로 변경하면 거의 같은 고통이 될 것이라고 가정합니다. 테이블 엔진은 InnoDB입니다. 더 쉬운 것 : 테이블 변경 복사 구조 INSERT INTO (SELECT *) 덤프 테이블 및 덤프 파일 테이블 …

4
NVARCHAR (4000) 열을 NVARCHAR (260)로 빠르게 변경
이 테이블을 몇 개의 NVARCHAR(4000)열로 처리하는 매우 큰 메모리 부여와 관련된 성능 문제가 있습니다. 이 열은 결코 크지 않습니다 NVARCHAR(260). 사용 ALTER TABLE [table] ALTER COLUMN [col] NVARCHAR(260) NULL 결과적으로 SQL Server는 수십억 개의 행인 전체 테이블을 다시 작성하고 로그 공간에서 2 배 테이블 크기를 사용하므로 아무것도 변경하지 않고 옵션이 …

3
큰 테이블의 속도 변경 열을 NON NULL로 증가
최근에 5 억 행에 가까운 테이블에 NULL 가능 비트 열을 추가했습니다. 열에는 기본값이 없지만 모든 삽입은 0 또는 1의 값을 지정하고 1 회 반복하여 모든 기존 행에 0 또는 1을 할당합니다 (작은 배치로 행 업데이트). 모든 행은 이제 해당 열에 0 또는 1이 있어야합니다. 비트 열을 Nullable로 만들려고하지만을 통해 시도했을 …

4
열에서 제약 조건 (인덱스) 삭제
인덱스가있는 테이블에서 유형을 수정하려면 어떻게해야합니까? 날짜 테이블에서 varchar (15)로 유형을 수정하기 위해 빈 테이블에서 alter column을 시도했지만 열에 대한 종속성이 있다는 오류가 발생했습니다 (색인으로 나타남). 인덱스를 마우스 오른쪽 버튼으로 클릭하고 드롭 스크립트를 작성하여 로컬로 쉽게 해결할 수 있었지만 인덱스 이름에 액세스 할 수없는 다른 서버에서 롤아웃해야합니다. 색인을 삭제하는 스크립트를 만들 …

5
MySQL-InnoDB를 위해 ALTER TABLE하는 가장 빠른 방법
변경하려는 InnoDB 테이블이 있습니다. 테이블에는 ~ 80M 개의 행이 있으며 몇 개의 인덱스를 종료합니다. 열 중 하나의 이름을 변경하고 색인을 몇 개 더 추가하고 싶습니다. 가장 빠른 방법은 무엇입니까? "일반" alter table이 가장 빠른 솔루션입니까? 현재 내가 관심있는 것은 속도 :)

2
하나의 쿼리에서 MySQL ENUM 열의 값 이름을 바꿀 수 있습니까?
가있는 데이터베이스 테이블이 있다고 가정하십시오 ENUM('value_one','value_two'). 로 변경하고 싶습니다 ENUM('First value','Second value'). 나는 현재 다음과 같이하고있다 : ALTER TABLE `table` MODIFY `column` ENUM('value_one','value_two','First value','Second value'); UPDATE `table` SET `column`='First Value' WHERE `column`='value_one'; UPDATE `table` SET `column`='Second Value' WHERE `column`='value_two'; ALTER TABLE `table` MODIFY `column` ENUM('First value','Second value'); 이것을 수행하는 더 …

2
NULL 열을 NOT NULL로 빠르게 변경
수백만 행의 테이블과 NULL 값을 허용하는 열이 있습니다. 그러나 현재 해당 열에 대해 NULL 값을 가진 행이 없습니다 (쿼리로 상당히 빨리 확인할 수 있습니다). 그러나 내가 명령을 실행할 때 ALTER TABLE MyTable ALTER COLUMN MyColumn BIGINT NOT NULL; 쿼리가 걸립니다 영원히 상대적으로 말하기. 실제로 검사 제한 조건을 추가하는 것보다 두 …

1
ALTER TABLE… DROP COLUMN은 실제로 메타 데이터 전용 작업입니까?
ALTER TABLE ... DROP COLUMN은 메타 데이터 전용 작업이라는 여러 소스를 찾았습니다. 출처 어떻게 이럴 수있어? DROP COLUMN 중 데이터를 기본 비 클러스터형 인덱스 및 클러스터형 인덱스 / 힙에서 제거 할 필요가 없습니까? 또한 Microsoft Docs가 왜 완전히 기록 된 작업임을 암시합니까? 테이블에 대한 수정 사항이 기록되고 완전히 복구 가능합니다. …

4
외래 키 제약 조건이있는 열을 이미 존재하는 테이블에 추가하는 방법은 무엇입니까?
다음 표가 있습니다. CREATE TABLE users (id int PRIMARY KEY); -- already exists with data CREATE TABLE message (); messages테이블을 어떻게 변경합니까? 라는 새 열 sender이 추가됩니다 테이블을 sender참조하는 외래 키는 어디에 있습니까?users 이 작동하지 않았다 # ALTER TABLE message ADD FOREIGN KEY (sender) REFERENCES users; ERROR: column "sender" referenced …


1
열 길이를 수정 (축소)하면 어떻게됩니까?
유형 NUMBER(정밀도 및 스케일 제외) 및 의 두 열이 있다고 가정 해 보겠습니다 VARCHAR(300). 이 열이 데이터에 비해 너무 큰 것을 보았으므로 NUMBER(11)및 로 수정하고 싶습니다 VARCHAR(10). 따라서이 SQL 문을 실행하면 : ALTER TABLE FOO MODIFY(BAR NUMBER(10)); 비어 있지 않은 열에서 그렇게 할 수 있습니까? 그렇다면, 하나보다 큰 값이 있으면 …

2
잠금 대기중인 PostgreSQL ALTER TABLE 쿼리를 취소하는 것이 안전합니까?
우리는 ALTER TABLE몇 시간 전에 쿼리를 시작했으며 최근에야 pg_stat_activity잠금을 기다리고 있음을 깨달았습니다 . 우리는 변경하려는 테이블에 잠금을 유지하고 놓지 않는 다른 쿼리를 발견했습니다. 쿼리는 "단순한"쿼리 (열 데이터 유형 변경)이지만 대규모 테이블에서 실행 중입니다. 잠금을 유지하고있는 프로세스를 종료하는 대신에을 종료하기로 결정했습니다 ALTER TABLE. 우리는 거래를 포장 하지 않았습니다ALTER TABLE . 내가 …

2
PostgreSQL은 NULL이 아닌 DEFAULT로 열 추가를 최적화합니까?
값 NOT NULL이있는 열을 추가 할 때 DEFAULTPostgreSQL이이 작업을 최적화합니까? 테이블에 n 개의 행이있는 경우 최적화되지 않은 alter-table-add-column은 기본값 n 쓰기를 생성하므로 매우 고통 스럽습니다. 최적화를 통해 DB는 즉시 새로운 열을 생성하고, 적절한 인덱스 데이터 구조에서 해당 열에 대해 기본값이 아닌 값을 찾을 수 없을 때 반환되는 기본값의 복사본 하나만 …
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.