MySQL에서 초기 값과 자동 증분을 설정하는 방법은 무엇입니까?


288

1001에서 시작하는 MySQL 테이블에서 "id"열의 초기 값을 어떻게 설정합니까?

삽입하고 싶습니다 "INSERT INTO users (name, email) VALUES ('{$name}', '{$email}')";

id 열의 초기 값을 지정하지 않습니다.

답변:


518

이것을 사용하십시오 :

ALTER TABLE users AUTO_INCREMENT=1001;

또는 ID 열을 아직 추가하지 않은 경우 추가하십시오.

ALTER TABLE users ADD id INT UNSIGNED NOT NULL AUTO_INCREMENT,
    ADD INDEX (id);

2
나는 이것이 7 년 전인 것을 알고 있지만 ...이 답변의 부분에 대한 설명을 얻을 수 있습니까? 무엇 않습니다 ADD INDEX여기합니까? id열과 같은 명령문에 추가해야 합니까, 아니면 블록 에서 id열을 정의한 CREATE TABLE다음 ADD INDEX(id)?
Michael Hoffmann

2
시간이 지남에 ... 물론 가능하다면 CREATE TABLE에서 정의하십시오. 답의 두 번째 "ALTER TABLE"부분은 이미 테이블을 작성했음을 의미하며, 적절한 인덱스없이 어딘가에 이미 배치되어있을 수 있습니다. 이는 첫 번째 "ALTER TABLE"이 의도 한대로 작동하는 데 필요합니다. 이 설명이 도움이되기를 바랍니다.
Anatoliy

예, 도움이됩니다. 이 문장을 비슷한 방식으로 사용한 몇 가지 샘플을 살펴 보았으므로 이제 더 의미가 있습니다. 감사합니다.
Michael Hoffmann

1
ADD INDEX가없는 이유는 기존 테이블에 기본 키가 이미 있으면을 얻을 수 있기 때문 there can be only one auto column and it must be defined as a key입니다. MUL 키가되도록 인덱스가 필요합니다.
djsumdog

행을 추가하지 않고 방금 만든 테이블 에서이 작업을 시도했습니다. 테이블에 최소 1 행을 먼저 추가하지 않으면 이것이 작동하지 않는 것 같습니다.
Solomon Closson

54

MySQL-1001에서 시작하는 자동 증가 기본 키 설정 :

1 단계 : 테이블을 만듭니다.

create table penguins(
  my_id       int(16) auto_increment, 
  skipper     varchar(4000),
  PRIMARY KEY (my_id)
)

2 단계 : 자동 증분 기본 키의 시작 번호를 설정합니다.

ALTER TABLE penguins AUTO_INCREMENT=1001;

3 단계 : 몇 개의 행을 삽입하십시오.

insert into penguins (skipper) values("We need more power!");
insert into penguins (skipper) values("Time to fire up");
insert into penguins (skipper) values("kowalski's nuclear reactor.");

4 단계 : 출력을 해석하십시오.

select * from penguins

인쇄물:

'1001', 'We need more power!'
'1002', 'Time to fire up'
'1003', 'kowalski\'s nuclear reactor'

1
특별한 펭귄을 위해 id <1000을 설정하려면 어떻게해야합니까?
William Hu

1
당신은 열 목록에 넣어, 어떤 무료 ID를 삽입 할 수 있습니다 insert into penguins (my_id, skipper) values(999, "explicit id");(사용하는 경우 0대신 999자동 증가 값 삽입됩니다)
hellcode

32

MySQL 워크 벤치

sql을 작성하지 않으려면 테이블을 마우스 오른쪽 버튼으로 클릭하고 메뉴에서 "Alter Table ..."을 선택하여 MySQL Workbench에서 수행 할 수도 있습니다.

테이블 구조보기가 열리면 "옵션"탭 (보기의 하단 하단)으로 이동하여 "자동 증가"필드를 다음 자동 증가 숫자의 값으로 설정하십시오.

모든 변경이 끝나면 "적용"을 누르는 것을 잊지 마십시오.

PhpMyAdmin :

phpMyAdmin을 사용하는 경우 왼쪽 탐색에서 테이블을 클릭하고 "작업"탭으로 이동 한 후 테이블 옵션에서 AUTO_INCREMENT 값을 변경하고 확인을 클릭하십시오.


1
phpMyAdmin에 대해 이야기하고 있습니까?
Pacerier

1
아니요, 그가 MySQL Workbench에 대해 이야기하고 있다고 생각합니다.
Saturnian

@ Saturnian, 네 맞아, 나는 Workbench를 의미했다. 명확히하기 위해 게시물을 편집하겠습니다.
Bojan Hrnkas

phpMyAdmin은 한 단계로 자동 증가 문제를 해결했습니다. 코드 경로를 시도했지만 작동하지 않았습니다.
tekagami

11

먼저 자동 증분을 위해 열을 추가해야합니다

alter table users add column id int(5) NOT NULL AUTO_INCREMENT FIRST

처음에 열 추가를위한 쿼리입니다. 이제 자동 증분 초기 값을 재설정해야합니다. 이 쿼리를 사용하십시오

alter table users AUTO_INCREMENT=1001

이제 테이블이 1001로 시작했습니다.


6

create table명세서 에서 설정할 수도 있습니다 .

`CREATE TABLE(...) AUTO_INCREMENT=1000`

5

또한 PHPMyAdmin 에서 왼쪽 (테이블 목록)에서 테이블을 선택한 다음 거기로 이동하여이를 수행 할 수 있습니다.
작업 탭-> 테이블 옵션-> AUTO_INCREMENT.

이제 값을 설정 하고 Table Options Bo x 아래에있는 Go 를 누르 십시오 .


4

이를 위해 당신은 AUTO_INCREMENT가치 를 설정해야 합니다

ALTER TABLE tablename AUTO_INCREMENT = <INITIAL_VALUE>

ALTER TABLE tablename AUTO_INCREMENT = 101

3

또는 SQL 쿼리를 작성하기에 너무 게으른 경우. 그렇다면이 솔루션은 당신을위한 것입니다. 여기에 이미지 설명을 입력하십시오

  1. phpMyAdmin을 엽니 다
  2. 원하는 테이블을 선택하십시오
  3. 작업 탭을 클릭 하십시오
  4. AUTO_INCREMENT에 원하는 초기 값을 설정하십시오.
  5. 끝난..!
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.