반응형
--컬럼 데이터 타입 변경
기존에 존재하는 테이블에 컬럼의 데이터 타입을 변경할 수 있다.
--실습준비
DROP TABLE ASSETS;
CREATE TABLE ASSETS (
ID SERIAL PRIMARY KEY
, NAME TEXT NOT NULL
, ASSET_NO VARCHAR(10) NOT NULL
, DESCRIPTION TEXT
, LOCATION TEXT
, ACQUIRED_DATE DATE NOT NULL
);
INSERT INTO ASSETS (
NAME
, ASSET_NO
, LOCATION
, ACQUIRED_DATE
)
VALUES
('Server', '10001', 'Server room', '2017-01-01'),
('UPS', '10002', 'Server room', '2017-01-02');
COMMIT;
SELECT * FROM ASSETS;
--name 컬럼의 데이터 타입 변경(text 였음)
ALTER TABLE ASSETS ALTER COLUMN NAME TYPE VARCHAR(50);
--한번에 여러개 변경
ALTER TABLE ASSETS
ALTER COLUMN LOCATION TYPE VARCHAR(100),
ALTER COLUMN DESCRIPTION TYPE VARCHAR(500);
--원래 varchar 였건 것을 int 형으로 변경하려고했으나 실패함
ALTER TABLE ASSETS ALTER COLUMN ASSET_NO TYPE INT;
SQL Error [42804]: 오류: "asset_no" 칼럼의 자료형을 integer 형으로 형변환할 수 없음
Hint: "USING asset_no::integer" 구문을 추가해야 할 것 같습니다.
;
--해결 방법 USING ASSET_NO::INTEGER을 사용
ALTER TABLE ASSETS
ALTER COLUMN ASSET_NO TYPE INT USING ASSET_NO::INTEGER;
반응형
'DataBase' 카테고리의 다른 글
[SQL]테이블 제거 (0) | 2021.09.25 |
---|---|
[SQL]컬럼 이름 변경 (0) | 2021.09.25 |
[SQL]칼럼 제거 (0) | 2021.09.25 |
[SQL]칼럼 추가 (0) | 2021.09.25 |
[SQL]테이블 이름 변경 (0) | 2021.09.25 |
댓글