2012-06-08 4 views
-3

Pouvez-vous me dire comment générer un numéro automatique en SQL? J'ai essayé mais il montre l'erreur suivanteNuméro d'incrémentation automatique

"sytnax incorrect près AUTO_INCREMENT".

Qu'est-ce que je fais mal?

create table auto1 
(
    Sno int NOT NULL AUTO_INCREMENT, 
    fname varchar(50) 
) 
+4

** Quel système de base de données **, et quelle version ?? * SQL * n'est que le * Structured Query Language * - un langage utilisé par de nombreux systèmes de bases de données, mais pas un produit de base de données ... Des trucs comme celui-ci sont spécifiques aux fournisseurs. Nous devons donc savoir quel système de base de données vous utilisez. ... –

+0

@Dems: 'AUTO_INCREMENT' n'a pas d'espace dans MySQL, le soulignement est nécessaire. –

+0

Ce qui manque (si c'est pour MySQL) est un index sur 'Sno'. Il ne doit pas être défini comme 'UNIQUE' ou' PRIMARY KEY' mais vous avez besoin d'un index pour une colonne 'AUTO_INCREMENT' dans MySQL. –

Répondre

1

Je suppose que vous utilisez SQL Server où la syntaxe est différente par rapport aux autres moteurs DB

create table auto1 
(
    Sno int NOT NULL IDENTITY(1,1), 
    fname varchar(50) 
) 

Voir here pour plus de détails sur la création de la table.

+1

L'exemple OPs est plus proche de MySQL; Ne devinez pas, sauf si vous couvrez plusieurs basé, et ne devinez certainement pas contre la preuve présente dans la question. – MatBailie

+1

le code de l'OP devrait fonctionner sur MySQL. Voir [ici] (http://dev.mysql.com/doc/refman/5.0/en/example-auto-increment.html). C'est pourquoi il est probablement SQL-Server –

0

s'il vous plaît essayer ci-dessous un

CREATE TABLE test (
sno INT NOT NULL AUTO_INCREMENT PRIMARY KEY , 
fname VARCHAR(20) NOT NULL 
) 
+0

Auto_increment peut être mis avec la clé primaire seulement – Rajesh

+1

Ce n'est pas correct. 'AUTO_INCREMENT' ** peut être défini ** sur une colonne sans être' PRIMARY' ou 'UNIQUE'. –

Questions connexes