ALTER 테이블 추가,변경
로빈아빠
본문
ALTER [IGNORE] TABLE tbl_name alter_spec [, alter_spec ...]
alter_specification:
ADD [COLUMN] create_definition [FIRST | AFTER column_name ]
or ADD [COLUMN] (create_definition, create_definition,...)
or ADD INDEX [index_name] (index_col_name,...)
or ADD PRIMARY KEY (index_col_name,...)
or ADD UNIQUE [index_name] (index_col_name,...)
or ADD FULLTEXT [index_name] (index_col_name,...)
or ADD [CONSTRAINT symbol] FOREIGN KEY index_name (index_col_name,...) [reference_definition]
or ALTER [COLUMN] col_name {SET DEFAULT literal | DROP DEFAULT}
or CHANGE [COLUMN] old_col_name create_definition [FIRST | AFTER column_name]
or MODIFY [COLUMN] create_definition [FIRST | AFTER column_name]
or DROP [COLUMN] col_name
or DROP PRIMARY KEY
or DROP INDEX index_name
or DISABLE KEYS
or ENABLE KEYS
or RENAME [TO] new_tbl_name
or ORDER BY col
or table_options
% 필드 추가하기
mysql> alter table 테이블 add column 필드명 데이타형;
% 두개의 필드 추가하기
mysql> alter table 테이블 add column wdate,add column wtime time;
wdate date 날짜데이터 형
wtime time 시간데이터 형
% 한라인 입력
mysql>create table test(..............);
% 다중입력
mysql>create table test(
->num
->int,
->name
->varchar(10));
%필드 수정하기
alter table 테이블이름 rename 바꿀이름
% 필드 삭제
alter table 테이블명 drop 칼럼네임
-----------------------------------------------------------
새로운 필드 삽입시 이미 만들어진 필드 의 어느 부분에 넣으려고 합니다.
add lolumn 추가하려는 필드명 [first/after 필드명]이라구 적혀있더라구요..
alter table insa add column address char(20) first name;
이렇게 하니 에러가 나내요..어떻게 써야 하나요....
답변좀 부탁드립니다. 그럼감사..고맙습니다.
[답변]---------------------------------------------->
예로서 설명을 해드리지요...
------------------------------------
| filed | type | key | default |
------------------------------------
| year | int(11) | pri | 0 |
------------------------------------
| name |varchar(8)| pri | 0 |
------------------------------------
뭐 이런식으로 db 디자인이 되어있다면...
여기다가 first/alter 를 이용하여 어느앞..어느뒤에다 넣을 것인지 쳐주면 됩니다...
그러니까...이 테이블 이름이 님의 테이블처럼 insa 경우..
alter table [테이블이름] add [컬럼정의부분] first;
->alter table insa add class int not null first;
이렇게 쳐주시면 class라는 컬럼이 테이블 최상위로 올라간답니다.
또 alter table insa add class int not null after year;
이렇게 쳐주시면 year라는 컬럼뒤에 class라는 컬럼이 추가 되겠지요...^^
제가 투덜이 책을 안봐서 모르겠지만...
설명이 잘 되었으리라 생각이 듭니다...
마지막으로 설마하는 맘으로...
님의 경우에서 한번더 써드리지요...
님이 쓰신글 -> alter table insa add column address char(20) first name;
수정한 글 -> alter table insa add address char(20) first;
[테이블명] [컬럼명][컬럼타입]
이렇게 써주셔야...테이블 최상위로 올라갑니다..^^
만약 name이라는 컬럼 뒤에 넣고 싶다면...
-> alter table insa add address char(20) after name;
출처 : http://qdata.co.kr/bo/bbs/board.php?bo_table=myt&wr_id=25
alter_specification:
ADD [COLUMN] create_definition [FIRST | AFTER column_name ]
or ADD [COLUMN] (create_definition, create_definition,...)
or ADD INDEX [index_name] (index_col_name,...)
or ADD PRIMARY KEY (index_col_name,...)
or ADD UNIQUE [index_name] (index_col_name,...)
or ADD FULLTEXT [index_name] (index_col_name,...)
or ADD [CONSTRAINT symbol] FOREIGN KEY index_name (index_col_name,...) [reference_definition]
or ALTER [COLUMN] col_name {SET DEFAULT literal | DROP DEFAULT}
or CHANGE [COLUMN] old_col_name create_definition [FIRST | AFTER column_name]
or MODIFY [COLUMN] create_definition [FIRST | AFTER column_name]
or DROP [COLUMN] col_name
or DROP PRIMARY KEY
or DROP INDEX index_name
or DISABLE KEYS
or ENABLE KEYS
or RENAME [TO] new_tbl_name
or ORDER BY col
or table_options
% 필드 추가하기
mysql> alter table 테이블 add column 필드명 데이타형;
% 두개의 필드 추가하기
mysql> alter table 테이블 add column wdate,add column wtime time;
wdate date 날짜데이터 형
wtime time 시간데이터 형
% 한라인 입력
mysql>create table test(..............);
% 다중입력
mysql>create table test(
->num
->int,
->name
->varchar(10));
%필드 수정하기
alter table 테이블이름 rename 바꿀이름
% 필드 삭제
alter table 테이블명 drop 칼럼네임
-----------------------------------------------------------
새로운 필드 삽입시 이미 만들어진 필드 의 어느 부분에 넣으려고 합니다.
add lolumn 추가하려는 필드명 [first/after 필드명]이라구 적혀있더라구요..
alter table insa add column address char(20) first name;
이렇게 하니 에러가 나내요..어떻게 써야 하나요....
답변좀 부탁드립니다. 그럼감사..고맙습니다.
[답변]---------------------------------------------->
예로서 설명을 해드리지요...
------------------------------------
| filed | type | key | default |
------------------------------------
| year | int(11) | pri | 0 |
------------------------------------
| name |varchar(8)| pri | 0 |
------------------------------------
뭐 이런식으로 db 디자인이 되어있다면...
여기다가 first/alter 를 이용하여 어느앞..어느뒤에다 넣을 것인지 쳐주면 됩니다...
그러니까...이 테이블 이름이 님의 테이블처럼 insa 경우..
alter table [테이블이름] add [컬럼정의부분] first;
->alter table insa add class int not null first;
이렇게 쳐주시면 class라는 컬럼이 테이블 최상위로 올라간답니다.
또 alter table insa add class int not null after year;
이렇게 쳐주시면 year라는 컬럼뒤에 class라는 컬럼이 추가 되겠지요...^^
제가 투덜이 책을 안봐서 모르겠지만...
설명이 잘 되었으리라 생각이 듭니다...
마지막으로 설마하는 맘으로...
님의 경우에서 한번더 써드리지요...
님이 쓰신글 -> alter table insa add column address char(20) first name;
수정한 글 -> alter table insa add address char(20) first;
[테이블명] [컬럼명][컬럼타입]
이렇게 써주셔야...테이블 최상위로 올라갑니다..^^
만약 name이라는 컬럼 뒤에 넣고 싶다면...
-> alter table insa add address char(20) after name;
출처 : http://qdata.co.kr/bo/bbs/board.php?bo_table=myt&wr_id=25
관련링크
댓글목록
등록된 댓글이 없습니다.