it-swarm.com.de

Ändern Sie eine MySQL-Spalte in AUTO_INCREMENT

Ich versuche, eine Tabelle so zu ändern, dass die Primärschlüsselspalte AUTO_INCREMENT nach der Tatsache erstellt wird. Ich habe die folgende SQL ausprobiert, aber eine Benachrichtigung über einen Syntaxfehler erhalten.

ALTER TABLE document
ALTER COLUMN document_id AUTO_INCREMENT

Mache ich etwas falsch oder ist das nicht möglich?

 + -------------------- + 
 | VERSION () | 
 + -------------------- + 
 | 5.0.75-0ubuntu10.2 | 
 + -------------------- + 
169
C. Ross
ALTER TABLE document MODIFY COLUMN document_id INT auto_increment
326
roman

Roman hat Recht, aber beachten Sie, dass die auto_increment-Spalte Teil des PRIMARY KEY oder eines UNIQUE KEY sein muss (und in fast 100% der Fälle sollte es die einzige Spalte sein, die den PRIMARY KEY bildet):

ALTER TABLE document MODIFY document_id INT AUTO_INCREMENT PRIMARY KEY
67
Roland Bouman

In meinem Fall hat es nur funktioniert, wenn ich not null eingebe. Ich denke, das ist eine Einschränkung.

ALTER TABLE document MODIFY COLUMN document_id INT NOT NULL AUTO_INCREMENT;
9
Rabia Naz khan

AUTO_INCREMENT ist Teil des Datentyps der Spalte. Sie müssen den vollständigen Datentyp für die Spalte erneut definieren:

ALTER TABLE document
ALTER COLUMN document_id int AUTO_INCREMENT

(int als Beispiel, Sie sollten es auf den Typ setzen, den die Spalte zuvor hatte)

5
Dan Soap

Sie müssen den Typ der Spalte vor der auto_increment-Direktive angeben, d. H. ALTER TABLE document MODIFY COLUMN document_id INT AUTO_INCREMENT.

5
Håvard S

Die SQL dazu wäre:

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

Es gibt einige Gründe, warum Ihr SQL nicht funktioniert. Zuerst müssen Sie den Datentyp erneut angeben (in diesem Fall INT). Außerdem muss die Spalte, die Sie ändern möchten, indiziert sein (es muss nicht der Primärschlüssel sein, aber normalerweise ist es das, was Sie möchten). Außerdem kann für jede Tabelle nur eine AUTO_INCREMENT-Spalte vorhanden sein. Daher möchten Sie möglicherweise die folgende SQL ausführen (wenn Ihre Spalte nicht indiziert ist): 

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

Weitere Informationen finden Sie in der MySQL-Dokumentation: http://dev.mysql.com/doc/refman/5.1/de/alter-table.html für die Spalte zum Ändern der Spalte und http: // dev .mysql.com/doc/refman/5.1/de/create-table.html für weitere Informationen zum Angeben von Spalten.

5
Steven Oxley

Sie können es so machen: 

 alter table [table_name] modify column [column_name] [column_type] AUTO_INCREMENT;
3
Aditya Kumar

Sie können die folgende Abfrage verwenden, um document_id automatisch inkrementieren zu lassen

ALTER TABLE document MODIFY COLUMN document_id INT auto_increment

Es wird bevorzugt, auch document_id als Primärschlüssel festzulegen

ALTER TABLE document MODIFY COLUMN document_id INT auto_increment PRIMARY KEY;
2
Azhar Zafar

Die folgende Anweisung funktioniert. Beachten Sie, dass Sie den Datentyp erneut für den Spaltennamen erwähnen müssen (den Datentyp, den die Spalte zuvor enthielt, erneut deklarieren).

ALTER TABLE document
MODIFY COLUMN document_id int AUTO_INCREMENT;
2
user5082888

Wenn keine der obigen Arbeiten funktioniert, versuchen Sie dies. Das habe ich in MYSQL gemacht und ja, Sie müssen den Spaltennamen (document_id) zweimal schreiben. 

ALTER TABLE document
CHANGE COLUMN document_id document_id INT(11) NOT NULL AUTO_INCREMENT ;
2
Susie

AUTO_INCREMENT ist Teil des Datentyps der Spalte. Sie müssen den vollständigen Datentyp für die Spalte erneut definieren:

ALTER TABLE document
MODIFY COLUMN document_id int AUTO_INCREMENT

(Beispiel: Sie sollten es auf den Typ setzen, den die Spalte zuvor hatte.)

2
KKK

Vorherige Tabellensyntax:

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

Verwenden Sie diese Abfrage, um die TransactionId für das automatische Inkrementieren zu ändern

ALTER TABLE apim_log_request MODIFY COLUMN TransactionId INT auto_increment;
1
Usman Yaqoob

Genau wie dieser:

alter table document modify column id int(11) auto_increment;

1
apemost

Um die Spalte in mysql zu ändern, verwenden wir Schlüsselwörter zum Ändern und Ändern. Angenommen, wir haben eine Tabelle erstellt wie:

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

Nun möchten wir den Typ der Spalten-ID mit Auto-Inkrement in Ganzzahl ändern. Sie könnten dies mit einem Befehl wie tun:

alter table emp modify column id int(10) auto_increment;
1
user6596773
alter table tbl_user MODIFY COLUMN id int(10) auto_increment;
1
Aminur Rahman

Wenn Sie die Spalte erneut definieren, müssen Sie den Datentyp erneut angeben und auto_increment hinzufügen, da er Teil des Datentyps ist.

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

ALTER TABLE tabellenname MODIFY COLUMN id datentyp auto_increment;

0
Kartik Madnani

Gleiche Einstellung der Spalte als Primärschlüssel und Auto_Increment:

  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>
0