database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
Oracle
Informix
ㆍSybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
Sybase Q&A 1828 게시물 읽기
No. 1828
지연님....다시 질문 드릴게요
작성자
이은영(eunylee)
작성일
2007-02-09 14:57
조회수
4,803



아래처럼 답변 해주셧는데요

9자리에서 10자리로 변경을 했으면

그 컬럼에대해 len()함수 써서 보면 10자리로 나오는게 맞지 않나요?

근데 9자리로 나오는데요...

그래서 좀 이해가 안갑니다.

안녕하세요


alter table 해서 char(9)자리였던 컬럼을 char(10)자리로 변경하고자 합니다.


이때 내부적으로 DB는 어떤 변화가 생기는지 궁급합니다.


char(9)자리안에 있던 데이터는 내용이 어찌되었든 다 공백을 붙여서라도 9자리로 만들어져 있는게 맞는거죠?


근데 그걸 10자리로 바꾸면 어떤 동작을 하나요???


alter를 해보면 백만건이 넘는 데이터 때문에 오래 걸리네요..


데이터를 update하는거 같은데..


index 컬럼, pk컬럼 여부에 따라 어떤 다른 현상이 생기는건지 알고 싶습니다.

이 글에 대한 댓글이 총 1건 있습니다.

1. 우선 alter table을 하시면 변경된 컬럼의 속성이 null로 바뀝니다.

    그리고 앞의 1byte가 space로 들어 가겠죠...


2. 내부적으로 select into 작업을 하므로 dboption이 select into가 on으로 되어 있어야 합니다.



3. 백만건이면 별로 많지 않은 데이타이므로 늦어도 한 10분정도면 끝나야 될것으로 보여집니다.

이 글에 대한 댓글이 총 1건 있습니다.

제가 조금 잘못 알고 있던게 있네요


char(9)에서 alter table char(10)으로 하면


자리수가 실제 자리수로 변경이 되네요


마치 varchar(10)으로 한것 처럼

변경이 되네요



create table test(a char(10) null)

하면 마치 varchar처럼 잡히네요....


이 NULL 때문인것 같아요...

그러므로 

alter table 하실때 alter table test modify a char(10) 뒤에 null을 넣지 마시고 하세요


null은 add하실때만 너주시면 될것 같습니다

지연님이 2007-02-12 09:56에 작성한 댓글입니다.
이 댓글은 2007-02-12 10:05에 마지막으로 수정되었습니다. Edit
[Top]
No.
제목
작성자
작성일
조회
1831[긴급] 커리좀 봐주세요 ^^ [3]
김철겸
2007-02-14
4522
1830랜덤 select 프로시져 보완좀 해주세요.
강민현
2007-02-14
5099
1829전자를 반자로 변환하고 싶습니다.
셀프
2007-02-12
5459
1828지연님....다시 질문 드릴게요 [1]
이은영
2007-02-09
4803
1827쿼리좀 도와 주세요. [1]
강민현
2007-02-08
4785
1826The data for column 3 is NULL but no indicator was available [4]
손영우
2007-02-08
4466
1825그사이 또 질문 ( alter table시 ) [1]
이은영
2007-02-08
5028
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.019초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다