MySQL에서 자동 증분 카운터를 변경하려면 어떻게 해야 합니까?
저는 기본 키인 ID 필드가 있고 그냥 int 필드입니다.
저는 300행 미만이지만 지금은 11800089, 11800090 등과 같이 ID auto inc가 입력될 때마다 매우 높게 입력됩니다.주문(310,311,312)을 따를 수 있도록 다시 내려올 수 있는 방법이 있을까요?
감사합니다!
ALTER TABLE table_name AUTO_INCREMENT=310;
하지만 ID를 반복해서 사용하고 싶지는 않을 것입니다.수치가 그렇게 높다면 어떻게든 그렇게 된 겁니다.낮은 ID 번호와 관련된 데이터가 없는지 확인합니다.
https://dev.mysql.com/doc/refman/8.0/en/example-auto-increment.html
더 빠른 방법이 있을 수도 있지만, ID를 다시 만들고 있는지 확인하려면 이렇게 해야 합니다.
MySQL 또는 다른 SQL 서버를 사용하는 경우 다음 작업을 수행해야 합니다.
- 데이터베이스 백업
- ID 열을 삭제합니다.
- 데이터 내보내기
TRUNCATE을 기'를- 다시 만들기
idauto_increment - 데이터 재가져오기
이렇게 하면 기존 행의 ID가 파괴되므로 이러한 ID가 중요한 경우 실행 가능한 옵션이 아닙니다.
테이블의 자동 증분 카운터는 두 가지 방법으로 설정(재)할 수 있습니다.
다른 사용자가 이미 설명한 것처럼 쿼리를 실행하면 다음과 같습니다.
ALTER TABLE <table_name> AUTO_INCREMENT=<table_id>;Workbench 또는 기타 시각적 데이터베이스 설계 도구를 사용합니다.Workbench에서 작업 방법을 보여드리겠습니다. 하지만 다른 도구에서도 크게 다르지 않을 것입니다.를 마우스 버튼으로 를 선택합니다.
Alter table상황에 맞는 메뉴에서한 모든 됩니다.아래쪽에는 테이블 변경에 사용 가능한 모든 옵션이 표시됩니다.선택하세요.Options그러면 다음과 같은 양식을 얻게 됩니다.그런 합니다에 만 하면 .
Auto increment그림과 같이 하면 으로 첫 옵션에 됩니다.이렇게 하면 기본적으로 첫 번째 옵션에 표시된 쿼리가 실행됩니다.
당신이 PHP를 사용하고 있기 때문에 mysql을 사용하고 있다고 추측합니다.auto_increment를 다음과 같은 문장으로 재설정할 수 있습니다.
alter table mytable autoincrement=301;
auto inc 값이 겹치면 고장이 나기 때문에 주의하십시오.
mysql은 id에 select max를 하고 다음을 넣는다고 생각합니다.테이블의 ID를 원하는 순서로 업데이트해 봅니다.문제는 그들이 연결되어 있다면 fk의 업데이트에 캐스케이드를 넣어야 한다는 것입니다.다음과 같은 질문이 떠오릅니다.
UPDATE Table SET id=(SELECT max(id)+1 FROM TAble WHERE id<700)
700 당신이 가지고 있는 11,00090보다 작고 300 WHERE id>0에 가까운 것;
제 생각에 당신이 아무데도 두지 않는다면 mysql은 불평을 할 것입니다.
저는 비슷한 문제를 해결하면서 다음과 같은 해결책을 발견했습니다.
SET @newID=0;
UPDATE `test` SET ID=(@newID:=@newID+1) ORDER BY ID;
SET @c = (SELECT COUNT(ID) FROM `test`);
SET @s = CONCAT("ALTER TABLE `test` AUTO_INCREMENT = ",@c);
PREPARE stmt FROM @s;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
비슷한 상황에 있는 누군가에게 도움이 되었으면 좋겠습니다!
언급URL : https://stackoverflow.com/questions/8161788/how-do-i-change-the-auto-increment-counter-in-mysql
'programing' 카테고리의 다른 글
| 크기를 사용하더라도 오는 불필요한 가로 스크롤 바아 ag-grid에서 ColumnsToFit (0) | 2023.09.25 |
|---|---|
| GCC에 OpenMP 지정 (0) | 2023.09.25 |
| 우분투에 gtk 개발 의존성을 설치하는 방법은? (0) | 2023.09.25 |
| mysql 데이터가 복제되지 않지만 복제는 문제가 없는 것 같습니다. (0) | 2023.09.25 |
| 로봇 공학을 위한 프로그래밍은 어디서부터 시작해야 합니까? (0) | 2023.09.20 |