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 1203 게시물 읽기
No. 1203
not null인 칼럼을 추가하는 방법?
작성자
허남훈(tonyheo)
작성일
2005-06-21 11:44
조회수
4,598

Test_Tbl이란 테이블에 not null인 index_cnt(int)칼럼을 추가하고 이 칼럼을 pk에 추가하려고 합니다.

pk로 사용할 index_cnt란 칼럼을 추가할수가 없네요..

 

테이블의 pk이름은 aaa_index란 이름입니다.

제가 해본것은 우선 aaa_index란 pk를 drop했습니다.

그런다음에 index_cnt라는 칼럼을 추가하려고 하는데 추가하는 문장에서 자꾸에러가납니다.

이 게시판의 글을 읽어보고

alter table Test_Tbl add index_cnt int default 0

이렇게 하면 값은 들어가는데 NULLS에 보면 null상태로 나옵니다. 당연히 이값을 pk에 추가하려면 안되구요.

그래서

alter table card_receipt_tbl add index_cnt int not null default 0

이렇게 하면 에러가 납니다.

좋은 방법알려주시면 감사하겠습니다.

참고로 ASE12.0버전입니다.

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

 

NULLS 항목은 0과 1로 표시됩니다.

0은 NULL 을 허용안하는 NOT NULL을 의미하고

1은 NULL 을 허용하는 NULL을 의미합니다.

장동훈님이 2005-06-21 18:14에 작성한 댓글입니다. Edit

PK는 unique 가 보장 되어야 합니다.

기존 테이블을 alter 시키면 기존 새로 추가된 컬럼에 default로 설정된

값이 들어 가는데 데이터가 전에 있어다면 같은 값으로 다 들어 가겠지요

그래서 primary key 가 생성되지 않습니다.

alter  시킨후 index_cnt에 unique 한 값으로 채워 주어야 primary

index 생성이 가능 합니다. 

후후님이 2005-06-21 18:36에 작성한 댓글입니다. Edit

답변에 감사드리며..

음.. 후후님말씀대로 새로추가된 컬럼에 default값으로 0이들어갑니다.

뭐..default값은 어떤값이든 상관이 없습니다.

즉 모두 똑같은 값이 들어가겠지요.

하지만 기존에 사용하고있던 pk값이 있기때문에 새로 추가할 컬럼의 값이 0으로 똑같다고 해서 문제된다는것이 잘 이해가 가지않습니다.

저는 "기존에 a,b,c라는 pk 컬럼에 추가적으로 d라는 pk컬럼을 추가"하려는 것입니다.

다시한번 답변주시면 감사하겠습니다.

허남훈(tonyheo)님이 2005-06-22 09:43에 작성한 댓글입니다.
이 댓글은 2005-06-22 09:43에 마지막으로 수정되었습니다.
[Top]
No.
제목
작성자
작성일
조회
1206오라클의 B.col(+) .... 을 사이베이스 IQ 에서 어떻게?? [1]
처음사용이
2005-06-24
3833
1205DB size가 이상해요.. [4]
알고파
2005-06-24
3872
1204sp_명령어가 안먹어요 꼭 답변주세요 [5]
초보
2005-06-21
5800
1203not null인 칼럼을 추가하는 방법? [3]
허남훈
2005-06-21
4598
1202table create 하고 primary key, index, foreign key 잡는 법좀 알려주세여 [1]
왕초보
2005-06-20
6422
1201Advantage나 WinSQL에서... [1]
손종삼
2005-06-19
4408
1200export [1]
ASIQ 초보
2005-06-16
4731
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다