복붙노트

[SQL] AUTO_INCREMENT이 될 수있는 MySQL의 컬럼을 변경합니다

SQL

AUTO_INCREMENT이 될 수있는 MySQL의 컬럼을 변경합니다

나는 사실 후 기본 키 열 AUTO_INCREMENT를 만들기 위해 테이블을 수정하기 위해 노력하고있어. 나는 다음과 같은 SQL을 시도했지만 구문 오류 알림을 가지고있다.

ALTER TABLE document
ALTER COLUMN document_id AUTO_INCREMENT

내가 뭔가 잘못하고 또는 가능한이없는 건가요?

+--------------------+
| VERSION()          |
+--------------------+
| 5.0.75-0ubuntu10.2 |
+--------------------+

해결법

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

    1.

    ALTER TABLE document MODIFY COLUMN document_id INT auto_increment
    
  2. ==============================

    2.로마의 오른쪽이지만, 노트는 AUTO_INCREMENT 컬럼이 PRIMARY KEY 또는 UNIQUE KEY의 일부가 될 수 있어야 (그리고 경우 거의 100 %, 그것은 기본 키를 구성하는 유일한 열이어야한다) :

    로마의 오른쪽이지만, 노트는 AUTO_INCREMENT 컬럼이 PRIMARY KEY 또는 UNIQUE KEY의 일부가 될 수 있어야 (그리고 경우 거의 100 %, 그것은 기본 키를 구성하는 유일한 열이어야한다) :

    ALTER TABLE document MODIFY document_id INT AUTO_INCREMENT PRIMARY KEY
    
  3. ==============================

    3.내가 널이 아닌 둘 때 내 경우 만했다. 나는이 제약 생각합니다.

    내가 널이 아닌 둘 때 내 경우 만했다. 나는이 제약 생각합니다.

    ALTER TABLE document MODIFY COLUMN document_id INT NOT NULL AUTO_INCREMENT;
    
  4. ==============================

    4.이 작업을 수행하는 SQL은 다음과 같습니다

    이 작업을 수행하는 SQL은 다음과 같습니다

    ALTER TABLE `document` MODIFY COLUMN `document_id` INT AUTO_INCREMENT;
    

    당신의 SQL이 작동하지 않을 수 있다는 몇 가지 이유가 있습니다. 첫째, 당신은 (이 경우 INT) 데이터 형식을 다시 지정해야합니다. 또한, 당신은 변경하고자하는 열은 (는 기본 키가 될 필요는 없지만 일반적으로 그게 당신이 원하는 것이 무엇인가) 인덱스해야합니다. 또한, 각 테이블에 대한 하나 AUTO_INCREMENT 열이있을 수있다. 그래서, 당신은 (당신의 열이 인덱싱되지 않은 경우) 다음과 같은 SQL을 실행하실 수 있습니다 :

    ALTER TABLE `document` MODIFY `document_id` INT AUTO_INCREMENT PRIMARY KEY;
    

    수정 열 구문과 http://dev.mysql.com/doc에 대한 http://dev.mysql.com/doc/refman/5.1/en/alter-table.html : 당신은 MySQL의 문서에서 더 많은 정보를 찾을 수 있습니다 열을 지정하는 방법에 대한 자세한 내용은 /refman/5.1/en/create-table.html.

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

    5.AUTO_INCREMENT 컬럼의 데이터 타입의 일부가 다시 열에 대한 전체 데이터 유형을 정의 할 수 있습니다 :

    AUTO_INCREMENT 컬럼의 데이터 타입의 일부가 다시 열에 대한 전체 데이터 유형을 정의 할 수 있습니다 :

    ALTER TABLE document
    ALTER COLUMN document_id int AUTO_INCREMENT
    

    (예로 들어 INT, 당신은 열이 전에했던 유형으로 설정해야합니다)

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

    6.당신은 AUTO_INCREMENT 지시어 전에 컬럼의 유형을 지정해야합니다, 즉 ALTER 표 문서 MODIFY 열 INT AUTO_INCREMENT는 DOCUMENT_ID.

    당신은 AUTO_INCREMENT 지시어 전에 컬럼의 유형을 지정해야합니다, 즉 ALTER 표 문서 MODIFY 열 INT AUTO_INCREMENT는 DOCUMENT_ID.

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

    7.당신은 이런 식으로 작업을 수행 할 수 있습니다 :

    당신은 이런 식으로 작업을 수행 할 수 있습니다 :

     alter table [table_name] modify column [column_name] [column_type] AUTO_INCREMENT;
    
  8. ==============================

    8.AUTO_INCREMENT 컬럼의 데이터 타입의 일부가 다시 열에 대한 전체 데이터 유형을 정의 할 수 있습니다 :

    AUTO_INCREMENT 컬럼의 데이터 타입의 일부가 다시 열에 대한 전체 데이터 유형을 정의 할 수 있습니다 :

    ALTER TABLE document
    MODIFY COLUMN document_id int AUTO_INCREMENT
    

    (예로 들어 INT, 당신은 열이 전에했던 유형으로 설정해야합니다)

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

    9.자동 증가에가 document_ID 확인하기 위해 다음 쿼리를 사용할 수 있습니다

    자동 증가에가 document_ID 확인하기 위해 다음 쿼리를 사용할 수 있습니다

    ALTER TABLE document MODIFY COLUMN document_id INT auto_increment
    

    기본 키도가 document_ID 수 있도록하는 것이 바람직하다

    ALTER TABLE document MODIFY COLUMN document_id INT auto_increment PRIMARY KEY;
    
  10. ==============================

    10.문 작품 아래. 당신이 열 이름 (데이터가 열이 예전 입력 재 선언) 다시 데이터 유형을 언급 할 필요가 있습니다.

    문 작품 아래. 당신이 열 이름 (데이터가 열이 예전 입력 재 선언) 다시 데이터 유형을 언급 할 필요가 있습니다.

    ALTER TABLE document
    MODIFY COLUMN document_id int AUTO_INCREMENT;
    
  11. ==============================

    11.위의 작품 중 누구도 이것을 시도하지 않는 경우. 이것은 내가 MYSQL에 무슨 짓을하고 그래, 당신은 두 번 열 이름 (가 document_ID)을 작성해야합니다.

    위의 작품 중 누구도 이것을 시도하지 않는 경우. 이것은 내가 MYSQL에 무슨 짓을하고 그래, 당신은 두 번 열 이름 (가 document_ID)을 작성해야합니다.

    ALTER TABLE document
    CHANGE COLUMN document_id document_id INT(11) NOT NULL AUTO_INCREMENT ;
    
  12. ==============================

    12.우리가 ALTER 사용 및 키워드를 수정 MySQL의에서 열을 수정합니다. 우리가 테이블 등으로 만든 가정 :

    우리가 ALTER 사용 및 키워드를 수정 MySQL의에서 열을 수정합니다. 우리가 테이블 등으로 만든 가정 :

    create table emp(
        id varchar(20),
        ename varchar(20),
        salary float
    );
    

    이제 우리는 자동 증가와 정수로 열 ID의 유형을 수정하고 싶습니다. 당신은 같은 명령으로이 작업을 수행 할 수 있습니다 :

    alter table emp modify column id int(10) auto_increment;
    
  13. ==============================

    13.이전 표 구문 :

    이전 표 구문 :

    CREATE TABLE apim_log_request (TransactionId varchar(50) DEFAULT NULL);
    

    자동차로는 TransactionId을 변경하면이 쿼리를 사용 증가를 위해

    ALTER TABLE apim_log_request MODIFY COLUMN TransactionId INT auto_increment;
    
  14. ==============================

    14.

    alter table tbl_user MODIFY COLUMN id int(10) auto_increment;
    
  15. ==============================

    15.다만이 같은 :

    다만이 같은 :

    테이블 변경 문서 수정 열 ID의 INT (11) AUTO_INCREMENT;

  16. ==============================

    16.다시 열을 재정의, 당신은 다시 데이터 유형을 지정하고이 데이터 타입의 일부이기로에 AUTO_INCREMENT를 추가해야합니다.

    다시 열을 재정의, 당신은 다시 데이터 유형을 지정하고이 데이터 타입의 일부이기로에 AUTO_INCREMENT를 추가해야합니다.

    ALTER TABLE `document` MODIFY COLUMN `document_id` INT AUTO_INCREMENT;
    
  17. ==============================

    17.

      mysql> ALTER TABLE persons MODIFY COLUMN personID INT auto_increment PRIMARY KEY;
        Query OK, 10 rows affected (0.77 sec)
        Records: 10  Duplicates: 0  Warnings: 0
    
        mysql>
    
  18. ==============================

    18.ALTER TABLE의 TABLE_NAME MODIFY의 열 ID 데이터 유형 AUTO_INCREMENT;

    ALTER TABLE의 TABLE_NAME MODIFY의 열 ID 데이터 유형 AUTO_INCREMENT;

  19. ==============================

    19.다음 쿼리를 사용합니다 :

    다음 쿼리를 사용합니다 :

    ALTER TABLE YourTable DROP COLUMN IDCol
    
    ALTER TABLE YourTable ADD IDCol INT IDENTITY(1,1)
    
  20. from https://stackoverflow.com/questions/2169080/alter-a-mysql-column-to-be-auto-increment by cc-by-sa and MIT license