2012-04-23 23 views
21

Was entspricht MSSQL IDENTITY Spalten in MySQL? Wie würde ich diese Tabelle in MySQL erstellen?Entspricht der Spalte MSSQL IDENTITY in MySQL

CREATE TABLE Lookups.Gender 
(
    GenderID INT   IDENTITY(1,1) NOT NULL, 
    GenderName VARCHAR(32) NOT NULL 
); 
+3

Wenn nur MySQL hat eine Art von [Dokumentation] (ht tp: //dev.mysql.com/doc/refman/5.5/en/example-auto-increment.html) – JohnFx

+3

true @ JohnFx, obwohl ich persönlich lieber StackOverflow als diese Seite von meinem googling gehen würde. – JumpingJezza

Antwort

42
CREATE TABLE Lookups.Gender 
(
    GenderID INT   NOT NULL AUTO_INCREMENT, 
    GenderName VARCHAR(32) NOT NULL 
); 
+1

Danke für deine Antwort hoffe, dass du dich zurückzahlen kannst :) –

+0

Das funktioniert nicht für mich (5.6.10; das ist Aurora aber die Syntax sollte identisch funktionieren): 'SQL Error (1075): Falsche Tabellendefinition; es kann nur eine automatische Spalte geben und sie muss als Schlüssel definiert werden. – mbourgon

+1

@mbourgon https://stackoverflow.com/questions/8645889/there-can-be-only-one-auto-column –

5
CREATE TABLE `Persons` (
    `ID` int(11) NOT NULL AUTO_INCREMENT, 
    `LastName` varchar(255) NOT NULL, 
    `FirstName` varchar(255) DEFAULT NULL, 
    `Address` varchar(255) DEFAULT NULL, 
    `City` varchar(255) DEFAULT NULL, 
    PRIMARY KEY (`ID`) 
) ENGINE=InnoDB AUTO_INCREMENT=100 DEFAULT CHARSET=latin1; 

Das obige Beispiel verwendet die AUTO_INCREMENT Syntax. Sie können einen Startoffset angeben, der für die Tabelle spezifisch ist.

Das Inkrement muss jedoch global eingestellt werden.

SET @@auto_increment_increment=10;

Sie können auch einen globalen Standard für den Offset eingestellt wie folgt:

SET @@auto_increment_offset=5;

Ihre aktuellen Werte anzuzeigen, Typ SHOW VARIABLES LIKE 'auto_inc%';