복붙노트

[SQL] 어떻게 MySQL의에서 AUTO_INCREMENT를 재설정?

SQL

어떻게 MySQL의에서 AUTO_INCREMENT를 재설정?

어떻게 필드의 AUTO_INCREMENT를 재설정 할 수 있습니다? 나는 다시 1부터 계산을 시작합니다.

해결법

  1. ==============================

    1.당신과 함께 카운터를 재설정 할 수 있습니다 :

    당신과 함께 카운터를 재설정 할 수 있습니다 :

    ALTER TABLE tablename AUTO_INCREMENT = 1
    

    이노 위해 당신은 낮은 AUTO_INCREMENT 값을 설정할 수 없습니다 또는 가장 높은 현재 인덱스에 동일. (ViralPatel에서 인용) :

    다른 테이블에서 MAX 값을 사용하여 MySQL의 자동 증가를 재설정하는 방법을 참조하십시오? 동적 허용 값을 얻는 방법에.

  2. ==============================

    2.

    ALTER TABLE tablename AUTO_INCREMENT = 1
    
  3. ==============================

    3.

    SET  @num := 0;
    
    UPDATE your_table SET id = @num := (@num+1);
    
    ALTER TABLE your_table AUTO_INCREMENT =1;
    

    나는이 그것을 할 것입니다 생각

  4. ==============================

    4.간단하게이 같은 :

    간단하게이 같은 :

    ALTER TABLE tablename AUTO_INCREMENT = value;
    

    참조 : http://dev.mysql.com/doc/refman/5.1/en/alter-table.html

  5. ==============================

    5.은 "작업"탭에서 phpMyAdmin에있는 아주 쉬운 방법이있다, 당신은 당신이 원하는 번호로, 테이블 옵션에서 자동 증가를 설정할 수 있습니다.

    은 "작업"탭에서 phpMyAdmin에있는 아주 쉬운 방법이있다, 당신은 당신이 원하는 번호로, 테이블 옵션에서 자동 증가를 설정할 수 있습니다.

  6. ==============================

    6.나를 위해 일한 가장 좋은 해결책 :

    나를 위해 일한 가장 좋은 해결책 :

    ALTER TABLE my_table MODIFY COLUMN ID INT(10) UNSIGNED;
    COMMIT;
    ALTER TABLE my_table MODIFY COLUMN ID INT(10) UNSIGNED AUTO_INCREMENT;
    COMMIT;
    

    그것의 빠른, 이노 디비와 함께 작동, 나는 현재 최대 값을 알 필요가 없습니다! 이 방법은 자동 증가 카운터가 재설정되고 최대 값이 존재에서 자동으로 시작됩니다.

  7. ==============================

    7.이 질문에 대한 가장 높은 평점 대답은 모두 "ALTER yourtable AUTO_INCREMENT = 값"을 추천합니다. 바꾼다의 값이 자동 증가 컬럼의 현재 최대 값보다 큰 경우에는,이 경우에만 작동합니다. MySQL의 8 설명서에 따르면 :

    이 질문에 대한 가장 높은 평점 대답은 모두 "ALTER yourtable AUTO_INCREMENT = 값"을 추천합니다. 바꾼다의 값이 자동 증가 컬럼의 현재 최대 값보다 큰 경우에는,이 경우에만 작동합니다. MySQL의 8 설명서에 따르면 :

    영업 이익은 질문의 두 번째 부분의 요청으로 본질적으로, 당신은 단지 ALTER AUTO_INCREMENT는하지 1로 재설정는 자동 증가 컬럼의 값을 증가 할 수 있습니다. 실제로 현재 최대에서 아래로 AUTO_INCREMENT를 설정할 수있는 옵션의 경우, 순서 바꾸기 / 리셋 자동 증가 기본 키를보십시오.

  8. ==============================

    8.기능은 MySQL의 5.6에서 변경 되었기 때문에 업데이 트를 추가. MySQL은 5.6로서 당신은 이노와 간단한 ALTER 테이블을 사용할 수 있습니다 :

    기능은 MySQL의 5.6에서 변경 되었기 때문에 업데이 트를 추가. MySQL은 5.6로서 당신은 이노와 간단한 ALTER 테이블을 사용할 수 있습니다 :

    ALTER TABLE tablename AUTO_INCREMENT = 1;
    

    워드 프로세서는이를 반영하기 위해 업데이트됩니다

    http://dev.mysql.com/doc/refman/5.6/en/alter-table.html

    테이블이 복사되지 않았는지 내도 테스트 쇼, 값은 간단하게 변경됩니다.

  9. ==============================

    9.MySQL의 자동 증가 열을 다시 설정하는 방법에 주어진 좋은 옵션이 있습니다

    MySQL의 자동 증가 열을 다시 설정하는 방법에 주어진 좋은 옵션이 있습니다

    참고 ALTER TABLE tablename에의 AUTO_INCREMENT = 값; 이노 작동하지 않습니다

  10. ==============================

    10.

    ALTER TABLE news_feed DROP id
    
    ALTER TABLE news_feed ADD  id BIGINT( 200 ) NOT NULL AUTO_INCREMENT FIRST ,ADD PRIMARY KEY (id)
    

    내 스크립트의 일부에서 이것을 사용, id 필드가 떨어 뜨린 후 이전 설정으로 다시 추가, 데이터베이스 테이블 내의 모든 존재 필드가 새로운 자동 증가 값으로 채워집니다, InnoDB의이해야 또한 작동합니다.

    테이블 내의 모든 필드를 회상되며 다른 ID를 가질 않습니다!.

  11. ==============================

    11.또한이 같은 구문 TRUNCATE 테이블을 사용할 수 있습니다 : TRUNCATE TABLE의 테이블 _

    또한이 같은 구문 TRUNCATE 테이블을 사용할 수 있습니다 : TRUNCATE TABLE의 테이블 _

    조심! TRUNCATE TABLE은 your_table은 your_table 모든 것을 삭제합니다!

  12. ==============================

    12.그것은 빈 테이블입니다 :

    그것은 빈 테이블입니다 :

    ALTER TABLE `table_name` AUTO_INCREMENT = 1;
    

    데이터를 가지고 있지만 당신이 그것을 정돈 할 경우, 내가 사용이 추천 :

    ALTER TABLE `table_name` DROP `auto_colmn`;
    ALTER TABLE `table_name` ADD  `auto_colmn` INT( {many you want} ) NOT NULL AUTO_INCREMENT FIRST ,ADD PRIMARY KEY (`auto_colmn`);
    
  13. ==============================

    13.여기 내 솔루션입니다,하지만 난 당신의 열 제약을가하거나 나쁜 영향을하거나하지 않습니다 심지어 작업하는 것처럼 다른 테이블에 외래 키로 연결되어있는 경우이 작업을 수행하기 위해 조언을하지 않습니다.

    여기 내 솔루션입니다,하지만 난 당신의 열 제약을가하거나 나쁜 영향을하거나하지 않습니다 심지어 작업하는 것처럼 다른 테이블에 외래 키로 연결되어있는 경우이 작업을 수행하기 위해 조언을하지 않습니다.

    ALTER TABLE tbl_name DROP COLUMN column_id
    
    ALTER TABLE tbl_access ADD COLUMN `access_id` int(10) NOT NULL PRIMARY KEY AUTO_INCREMENT FIRST
    

    이것은 잘 작동합니다!

  14. ==============================

    14.MySQL의 5.6 작품 아래의 접근 속도의로 인해 온라인 DDL에 (주 알고리즘 = 인플레 이스)

    MySQL의 5.6 작품 아래의 접근 속도의로 인해 온라인 DDL에 (주 알고리즘 = 인플레 이스)

    테이블 변경 TABLENAME의 AUTO_INCREMENT = 1, 알고리즘 = 인플레 이스;

  15. ==============================

    15.당신은 단순히 순서를 다시 테이블을자를 수

    당신은 단순히 순서를 다시 테이블을자를 수

    TRUNCATE TABLE TABLE_NAME
    
  16. ==============================

    16.나는 1로 테이블과 세트 AUTO_INCREMENT를 변경하는 시도했지만 작동하지 않았다. 그럼 내가 원하는 이름으로 새 열을 생성하고 설정, 내가 증가 된 열 이름을 삭제합니다 해결 발병의 증가에 새 열 그.

    나는 1로 테이블과 세트 AUTO_INCREMENT를 변경하는 시도했지만 작동하지 않았다. 그럼 내가 원하는 이름으로 새 열을 생성하고 설정, 내가 증가 된 열 이름을 삭제합니다 해결 발병의 증가에 새 열 그.

  17. ==============================

    17.테이블의 자동 증가 카운터는 두 가지 방법으로 (재) 설정할 수 있습니다 :

    테이블의 자동 증가 카운터는 두 가지 방법으로 (재) 설정할 수 있습니다 :

  18. ==============================

    18.최신 더한 ID를 업데이트하려면

    최신 더한 ID를 업데이트하려면

     ALTER TABLE table_name AUTO_INCREMENT = 
     (SELECT (id+1) id FROM table_name order by id desc limit 1);
    
  19. ==============================

    19.ALTER TABLE tablename에의 AUTO_INCREMENT = 1

    ALTER TABLE tablename에의 AUTO_INCREMENT = 1

  20. ==============================

    20.내가 봤이 질문을 찾았지만 대답은 정말 만족 두 가지 기준을 찾고 있습니다 :

    내가 봤이 질문을 찾았지만 대답은 정말 만족 두 가지 기준을 찾고 있습니다 :

    내가 정확히 내가 여기에 원하는 것을 찾을 수 없습니다 때문에, 나는 여러 답변에서 답을 자갈길 여기에 그것을 공유했다.

    참고로 몇 가지 :

    이 같은 저장 프로 시저를 만들 :

    DELIMITER //
    CREATE PROCEDURE reset_autoincrement(IN tablename varchar(200))
    BEGIN
    
          SET @get_next_inc = CONCAT('SELECT @next_inc := max(id) + 1 FROM ',tablename,';');
          PREPARE stmt FROM @get_next_inc; 
          EXECUTE stmt; 
          SELECT @next_inc AS result;
          DEALLOCATE PREPARE stmt; 
    
          set @alter_statement = concat('ALTER TABLE ', tablename, ' AUTO_INCREMENT = ', @next_inc, ';');
          PREPARE stmt FROM @alter_statement;
          EXECUTE stmt;
          DEALLOCATE PREPARE stmt;
    END //
    DELIMITER ;
    

    그런 다음 실행합니다.

    당신이 당신의 데이터베이스에 저장 프로 시저에서 볼 때 실행하기 전에, 다음과 같습니다.

    내가 실행하면, 나는 단순히 저장 프로 시저를 눌러 실행 선택을 선택

    참고 : 구분 기호 부분이 중요하다. 이 문제의 상단 선택한 답변에서 복사 및 붙여 넣기 따라서, 그들은 이런 이유로 작동하지 경향이있다.

    내가 실행 한 후, 내가 저장 프로 시저를 볼 수

    당신이 저장 프로 시저를 변경해야 할 경우 다시 실행을 선택, 저장 프로 시저를 삭제해야합니다.

    이번에는 당신은 단순히 정상 MySQL의 쿼리를 사용할 수 있습니다.

    call reset_autoincrement('products');
    

    원래 내 자신의 SQL에서 https://simkimsia.com/library/sql-queries/#mysql-reset-autoinc에 메모를 조회하고 StackOverflow의 적응

  21. ==============================

    21.

    SET @num := 0;
    UPDATE your_table SET id = @num := (@num+1);
    ALTER TABLE your_table AUTO_INCREMENT =1;
    
  22. ==============================

    22.실행이 쿼리

    실행이 쿼리

     ALTER TABLE tablename AUTO_INCREMENT = value;
    

    또는 재설정 자동 증가를 위해이 쿼리

     ALTER TABLE `tablename` CHANGE `id` `id` INT(10) UNSIGNED NOT NULL;
    

    그리고 설정 자동 증가는이 쿼리 실행

      ALTER TABLE `tablename` CHANGE `id` `id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT;
    
  23. ==============================

    23.난 당신이 쿼리 브라우저로 이동하여 다음을 수행하는 것이 좋습니다 :

    난 당신이 쿼리 브라우저로 이동하여 다음을 수행하는 것이 좋습니다 :

    표에 새 행을 입력하면 자동 증가 하나를 다시 설정해야합니다.

    나는 당신이 AUTO_INCREMENT 필드 값이 이미 존재하는 행을 추가하려고하면 무슨 일이 일어날 지 모른다.

    이 도움말을 희망!

  24. ==============================

    24.가장 좋은 방법은, AI와 함께 필드를 제거하고 인공 지능을 다시 추가 모든 테이블에 대한 작업

    가장 좋은 방법은, AI와 함께 필드를 제거하고 인공 지능을 다시 추가 모든 테이블에 대한 작업

  25. from https://stackoverflow.com/questions/8923114/how-to-reset-auto-increment-in-mysql by cc-by-sa and MIT license