복붙노트

[SQL] 차 인덱스 번호를 다시 지정하는 방법

SQL

차 인덱스 번호를 다시 지정하는 방법

I 간단한 MySQL의 테이블 차 인덱스 (ID)를 가지고 온 (1, 31, 35, 100 등)가 하나의 번호가 아니다. 나는 그들이 (1, 2, 3, 4)와 같이 번호가되어야합니다. 그것을 어떻게 알려주세요. 나는 또한 작업의 가능한 결과의 알고 있다는 점 싶지만, 난 그냥 테이블을 정돈하고 싶다.

해결법

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

    1.나는 다른 방법이 작동 동의하지만, 난 그냥 다른 생각을주고있다. 이것은 어떤 임시 테이블 작성 요구 사항없이 할 것입니다 :

    나는 다른 방법이 작동 동의하지만, 난 그냥 다른 생각을주고있다. 이것은 어떤 임시 테이블 작성 요구 사항없이 할 것입니다 :

    SET @i=0;
    UPDATE table_name SET column_name=(@i:=@i+1);
    
  2. ==============================

    2.dalmp의 번호 재 지정 방법을 시도 제공 (MySQL은 PHP를 사용하는 DALMP 데이터베이스 추상화 계층을.)

    dalmp의 번호 재 지정 방법을 시도 제공 (MySQL은 PHP를 사용하는 DALMP 데이터베이스 추상화 계층을.)

    $db->renumber('table','uid');
    

    기본적으로이 작업을 수행합니다

    SET @var_name = 0;
    UPDATE Tablename SET ID = (@var_name := @var_name +1);
    ALTER TABLE tablename AUTO_INCREMENT = 1
    
  3. ==============================

    3.가장 쉬운 해결 방법은 다음과 같습니다

    가장 쉬운 해결 방법은 다음과 같습니다

    당신이 외래 키를 사용하는 경우이 모든 데이터를 파괴하고 난 강력하게 그들이 당신이 ID를 떠나 좋습니다. 기본 키가 고장 참조 무결성 (ID 값이 다른 테이블에 잘못된 또는 존재하지 않는 행을 가리키는)의 경우하지가 순서대로 데이터베이스가 어수선한입니다 때문에 데이터베이스는 어수선한 없습니다.

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

    4.의견에 나중에 감사를 편집했다.

    의견에 나중에 감사를 편집했다.

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

    5.

    CREATE TABLE newtable 
      LIKE oldtable 
      SELECT NULL, col1, col2, col3, etc FROM oldtable;
    

    선택의 기본 키 열하지만, ​​다른 모든 열을 포함하지 않고.

    그리고 기본 키 열은 테이블에 먼저해야하거나 기본 키 컬럼의 위치로 NULL을 설정해야합니다. 그리고 열은 "NOT NULL"설정이 있어야합니다. 그렇지 않으면 단지 널 (null)로 설정하고, 그 종류 무의미의의 것입니다.

    MySQL은 auto_increments에 NULL 삽입을 무시하고 대신 (널 (null)가 유효한 값이 해당 컬럼에없는 것을 제공) 그것을 위해 새 번호를 만들 것을 좋아하기 때문에이 작동하는 이유입니다.

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

    6.당신은 그것을 원하지 않는다. 기본 키는 번호가 아닙니다. 그냥 의미없는 고유 한 순이다.

    당신은 그것을 원하지 않는다. 기본 키는 번호가 아닙니다. 그냥 의미없는 고유 한 순이다.

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

    7.(이 기본 키의 경우) 당신은 당신의 기본 키의 자동 증가를 정의해야

    (이 기본 키의 경우) 당신은 당신의 기본 키의 자동 증가를 정의해야

    여기 링크입니다 :

    SQL 자동 증가

  8. from https://stackoverflow.com/questions/2643371/how-to-renumber-primary-index by cc-by-sa and MIT license