ySQL 자동 증가를 사용하는 방법

ySQL 자동 증가를 사용하는 방법

2022-06-03 last update

7 minutes reading MySQL MariaDB
자동 증가는 MySQL의 매우 중요한 속성입니다.테이블이 일련 번호의 숫자 필드를 생성하기 위해 자동으로 증가해야 하는 경우 이 필드는 자동 증가 속성을 사용합니다.필요한 경우 자동 증가 필드를 테이블의 주 키 또는 고유 키로 지정할 수 있습니다.이 필드는 빈 값을 저장할 수 없습니다.따라서 테이블의 모든 필드에 대해 자동 증가 속성을 설정하면 이 필드에 대해 NOT NULL 제약조건이 자동으로 설정됩니다.새 레코드가 자동 증가 필드를 포함하는 테이블에 삽입되어야 할 때 사용자는 이 필드에 값을 제공할 필요가 없습니다.이 문서에서는 이 속성이 MySQL 테이블에서 작동하는 방식을 설명합니다.

자동 필드 증가 기능:

  • 기본적으로 이 필드의 첫 번째 기록은 항상 1부터 시작하고 새 기록을 삽입할 때 1씩 증가합니다.
  • 사용자가 삽입할 때 이 필드에 NULL이 없는 특정 값을 지정하고 순서대로 정렬되지 않으면 MySQL에서 오류 메시지가 생성됩니다.
  • 이 필드의 값이 테이블에 이미 존재하는 다른 값으로 업데이트되면 MySQL에서 오류 메시지가 생성됩니다.
  • 사용자가 테이블에서 마지막 기록을 삭제하면 새 시퀀스 번호는 테이블의 엔진에 달려 있습니다.새 레코드를 삽입할 때 InnoDB 테이블은 이전에 생성된 번호를 생성하지 않지만 MyISAM 테이블은 테이블에서 삭제된 마지막 번호를 생성합니다.
  • LAST\u INSERT\u ID () 함수는 마지막 삽입에서 생성된 숫자의 값을 읽어들입니다.
  • 구문:
    CREATE TABLE table1
    (
    field1 datatype AUTO_INCREMENT [PRIMARY KEY],
    field2 datatype [ NULL | NOT NULL ],
    ...
    fieldn datatype [ NULL | NOT NULL ],
    );
    여기에서field1은 INT나 BIGINT 같은 모든 디지털 데이터 형식이 될 수 있는 자동 증가 필드로 정의됩니다.자동 증가 필드를 주 키로 정의하지 않습니다.그러나 이것은 두 테이블 사이의 관계를 만들기 위해 메인 키로 사용할 수 있다.

    선행 조건:


    다음 SQL 명령을 실행하여 "newdb"라는 데이터베이스를 만들고 자동 증량 속성이 있는 테이블을 만드는 데이터베이스를 선택하십시오.
    CREATE DATABASE newdb;
    use newdb;

    자동 증분 테이블을 생성합니다.


    다음 CREATE 문장을 실행하여students라는 테이블을 만듭니다. id 필드는 자동으로 속성을 증가시켜 메인 키로 만듭니다.그런 다음 두 가지 유형의 INSERT 문이 실행됩니다.첫 번째 INSERT 문장에서 INSERT 쿼리에 필드 이름이 언급되지 않았습니다. 이 유형의 삽입에 테이블의 모든 필드 값을 제공해야 합니다.여기, 빈 값은 id 필드에 사용됩니다.두 번째 INSERT 문장에서 INSERT 쿼리는 자동으로 생성되기 때문에 자동 증가 필드를 제외한 모든 필드를 언급합니다.다음은 SELECT 문장을 실행하여 students 테이블의 내용을 표시합니다.
    CREATE TABLE students (
    id INT UNSIGNED AUTO_INCREMENT,
    name VARCHAR(50) NOT NULL,
    batch SMALLINT NOT NULL,
    semester SMALLINT NOT NULL,
    PRIMARY KEY (id)
    );
    
    INSERT INTO students VALUES
    (NULL, 'Masrafi', 41, 9);
    
    INSERT INTO students(name, batch, semester) VALUES
    ('Sakib', 43, 7);
    
    SELECT * FROM students;

    자동 증가 필드의 값을 수동으로 설정할 수 있지만 순서를 유지해야 합니다.마지막으로 삽입한 값보다 작거나 기존 값과 같은 값으로 설정할 수 없습니다.다음 첫 번째 INSERT 문은 마지막으로 삽입된 값이 2이기 때문에 정상적으로 작동합니다.두 번째 INSERT 문은 테이블에 값 2가 이미 있으므로 오류가 발생합니다.
    INSERT INTO students VALUES
    (4, 'Robel', 41, 9);
    
    INSERT INTO students VALUES
    (2, 'Manzarul', 41, 9);

    자동 증가 및 기호 제로 채우기 없는 테이블을 만듭니다.


    앞에서 언급한 바와 같이 자동 증가 필드는 기본적으로 1부터 시작됩니다.그러나 기호 제로 채우기 없는 속성을 자동 증가 필드와 함께 사용하고 숫자의 길이를 설정하면 길이에 따라 선도 0을 사용하여 숫자가 생성됩니다.다음 CREATE 문장은 teachers라는 테이블을 만들 것입니다. tch\U id 필드는 자동 증가와 기호 제로 채우기 속성을 설정하고 필드 길이는 4로 설정합니다.다음에 일부 데이터는 INSERT 문장을 통해 테이블에 삽입되고, SELECT 문장은 테이블의 모든 내용을 표시합니다.
    CREATE TABLE teachers (
    tch_id MEDIUMINT(4) UNSIGNED ZEROFILL AUTO_INCREMENT,
    name VARCHAR(50) NOT NULL,
    department VARCHAR(10) NOT NULL,
    PRIMARY KEY (tch_id)
    );
    
    INSERT INTO teachers VALUES
    (NULL, 'Maria', 'CSE'),
    (NULL, 'Janifer', 'BBA'),
    (NULL, 'Micheal', 'ENG');
    SELECT * FROM teachers;
    여기서 0001, 0002 및 0003이 tch\U id 값으로 생성됨을 나타냅니다.

    현재 마지막 기록을 삭제하고 새 기록을 삽입하면 삭제된 tch\U id 값은 새 tch\U id로 새 번호를 생성합니다.
    DELETE FROM teachers WHERE tch_id = 3;
    
    INSERT INTO teachers VALUES
    (NULL, 'Mahmuda', 'CSE');
    
    SELECT * FROM teachers;

    자동 증가 필드 재설정:


    자동 증가 필드를 포함하는 교사표에서 모든 기록을 삭제하면 마지막으로 삽입된 값 다음에 tch\U id의 새 값이 생성됩니다.다음 SQL 문장을 실행하면 새로 생성된 tch\U id는 0005입니다. 마지막으로 삽입된 값은 0004이기 때문입니다.
    DELETE FROM teachers;
    
    INSERT INTO teachers VALUES
    (NULL, 'Lucy', 'EEE');
    
    SELECT * FROM teachers;

    테이블을 재설정하고 1부터 값을 다시 시작하려면 DELETE 문장이 아닌 TRUNCATE 문장을 실행해야 합니다.이것은 다음 세 문장에 표시됩니다.
    TRUNCATE table teachers;
    
    INSERT INTO teachers VALUES
    (NULL, 'Lucy', 'EEE');
    
    SELECT * FROM teachers;
    이 문장을 실행하면 다음 출력을 얻을 수 있습니다.

    자동 증분 필드의 기본값을 변경하려면 Alter 문을 실행하려면 자동 증분 실행 을 시작해야 합니다.다음에 기록을 삽입하고 자동 증가 필드의 값을 검사합니다.여기서 시작 값은 15로 설정됩니다.
    TRUNCATE table teachers;
    
    ALTER TABLE teachers AUTO_INCREMENT = 15;
    
    INSERT INTO teachers VALUES
    (NULL, 'Lucy', 'EEE');
    
    SELECT * FROM teachers;
    위의 SQL 문을 실행하면 다음 출력이 표시됩니다.

    결론:


    본고는 예시표를 사용하여 자동 증가 속성의 용도를 정확하게 해석하여 MySQL 사용자가 이 속성의 사용법을 이해하도록 돕는다.