Mysql auto_increment 속성 제거 - Mysql auto_increment sogseong jegeo

작업중에 PK, auto_increment 속성을가진 컬럼을 제거 해달라고 한다 ..
oracle에서는 SEQUENCE를 삭제하면 되지만
속성만 지우는 방법을 몰라서
mysql에서 삭제를 하려고하니 pk는 지울 수 없고 auto_increment를 제거해달라고 경고창이 뜬다

구글링 결과
alter table [테이블명] drop primary key, change [필드명] [필드명] [데이터타입(길이)] not null;

결과적으로 alter문으로 속성을 변경 해주면 되는것...

#Auto_increment 초기화방법
alter table [테이블명] auto_increment=1;
set @count =0;
update [테이블명] set [필드명] = @count:=@count+1;

첫번째 라인은 auto_increment 시작값 초기화
두번째, 세번째라인은 카운트를 1부터 오름차순시킨다


컬럼에 잘못 설정된 auto_increment (자동증가) 속성을 제거하는 쿼리문입니다.

ALTER TABLE [테이블명] CHANGE [속성명] [속성명] [옵션]

예시 )

ALTER TABLE `test_table` CHANGE `id` `id` BIGINT NOT NULL;

아래와 같이 검색했을 때 원하는 결과가 안나와서 혹시 찾으시는 분 있을까봐 유입경로 공유합니다

더보기

ALTER TABLE document MODIFY INT AUTO_INCREMENT PRIMARY KEY delete

alter table column auto increment 조건 삭제

alter table column option 

alter table auto increment

컬럼 자동증가 옵션 제거

컬럼 자동증가 옵션 삭제

컬럼 속성 변경

컬럼 속성 변경 및 제거

table column modify DDL SQL query

table column DDL SQL query

table column ALTER SQL query 

�ʵ� no�� auto_increment�� �ߴ���, �̹��� ÷�ν� �̹��� ���ϸ��� �޶� ã�� ���ϴ� ��찡 �վ, auto_increment�� �����ϰ� �׳� no�ʵ常 ����� �ͽ��ϴ�.
��� �ؾ� �ϳ���?
alter table products (��¼��)... �ϴ°Ͱ����� �� �𸣰ڳ׿�.

no = auto_increment;
�̹������ϸ� =  SELECT max(no)+1 FROM products;

���� �ֱ� ����Ÿ�� �����ϰ� ���� �ø���, no�� �̹��� ���ϸ��� �޶��.

  • �亯ä����
    Mysql auto_increment 속성 제거 - Mysql auto_increment sogseong jegeo
    58%
  • ��õ 0 �� ������ ������ �峪��?
  • ����õ 0 �� ������ ������ �ȵ���.

MySQL에서는 오라클의 시퀀스와 같은 역할을 auto_implement가 할 수 있다.
컬럼에서 auto_implement를 사용하기 위해서는 타입이 정수(INT) 이고,
기본키(Primary Key)로 지정되어 있어야 한다.
auto_implement를 설정해두면 insert문으로 데이터가 입력 될 때마다 자동으로 값을 올려주는 역할이다.



1. auto_implement 생성하기

테이블을 생성하면서 auto_implement  

CREATE TABLE member (
    midx int not null primary key auto_increment,
    name varchar(20),
    phone varchar(20) not null,
    delyn char(1) default 'N'
);

생성된 테이블에 auto_implement 추가

(auto_implement를 추가하는 컬럼은 int타입에 PK를 가지고 있어야 한다.)

--/CREATE TABLE member (
--    midx int not null primary key,
--    name varchar(20),
--    phone varchar(20) not null,
--   delyn char(1) default 'N'
--);

ALTER TABLE member MODIFY midx int AUTO_INCREMENT;

2. auto_implement 사용하기

사용방법은 아주 간단하다. auto_implement가 적용된 컬럼은 제외하고 데이터를 넣어주면, 마치 default 값이 자동으로 입력되는 것과 비슷하게, 자동으로 +1씩 증가하면서 데이터가 입력이 된다.

insert into member (name,phone) values ('지민','010-0000-0000');
insert into member (name,phone) values ('리나','010-1200-2300');

select * from member;
Mysql auto_increment 속성 제거 - Mysql auto_increment sogseong jegeo
위 코드의 결과

3. auto_implement 수정하기

auto_implement의 시작값 변경하기

alter table [테이블명] auto_increment=[시작값];

alter table member auto_increment=10;

auto_implement의 증가값 변경하기

SET @@auto_increment_increment=[증가값];

SET @@auto_increment_increment=10;

auto_implement의 초기화

테이블의 데이터를 삭제하고 새로운 데이터를 넣었지만 midx(auto_implement)의 값은 그대로 쭉~ 증가하고 있는 것을 확인 할 수 있다. 이때 auto_implement를 다시 1부터 증가하게 초기화 하는 방법입니다.

Mysql auto_increment 속성 제거 - Mysql auto_increment sogseong jegeo

기존의 데이터가 있다면 auto_implement로 들어갔던 값을 1부터 재정렬한다.

ALTER TABLE [테이블명] AUTO_INCREMENT=1; 
SET @COUNT = 0;
UPDATE [테이블명] SET [컬럼명] = @COUNT:=@COUNT+1;

ALTER TABLE member AUTO_INCREMENT=1; 
SET @COUNT = 0;
UPDATE member SET midx = @COUNT:=@COUNT+1;
Mysql auto_increment 속성 제거 - Mysql auto_increment sogseong jegeo
위의 코드의 실행결과

이미 들어가 있는 데이터의 다음 번호부터 auto_implement의 시작값을 설정해준다.

alter table member auto_increment=2;

그리고 데이터를 넣어보면 다시 순서대로 증거하면서 데이터가 입력되는 것을 확인 할 수 있다.

Mysql auto_increment 속성 제거 - Mysql auto_increment sogseong jegeo