web-dev-qa-db-fra.com

On peut se glisser dans une table à l'aide d'une instruction SQL, mais l'incrémentation de la clé est automatique

Supposons que j'ai une table d'utilisateurs et que la colonne id est la clé primaire et incrémentée automatiquement. 

Je veux juste essayer et ajouter l'utilisateur manuellement par cette déclaration:

INSERT INTO table_name (id, username, password)  
VALUES (?, Mike, Mike);

mais je ne veux pas spécifier la valeur ?, je veux juste ajouter à la ligne suivante.

Merci à tous, j'ai oublié de définir la colonne id à incrémentation automatique. ça fonctionne maintenant.

10
Mike

Donc, ne l'utilisez pas ... faites-le comme ça ...

Et assurez-vous d’utiliser des guillemets simples pour insérer strings

INSERT INTO table_name (username, password)
VALUES ('Mike', 'Mike');

Comme vous l'avez dit, votre champ est auto incremented, SQL incrémentera automatiquement la valeur du champ id de 1

10
Mr. Alien

Si vous voulez insérer manuellement une valeur dans une colonne incrémentée automatiquement, vous pouvez utiliser le IDENTITY_INSERT de SQL. par exemple

SET IDENTITY_INSERT MyTable ON
insert into MyTable(id, name) values (1,'asdf');
insert into MyTable(id, name) values (3,'htgfds');
insert into MyTable(id, name) values (123,'dsfg');
SET IDENTITY_INSERT MyTable OFF

vous pouvez en lire plus ici IDENTITY_INSERT

9
Mr T.

Si id est une valeur incrémentée automatiquement, laissez simplement cette colonne en dehors de l'insertion et elle se remplira avec la valeur incrémentée automatiquement. Par exemple, à partir de BOL http://msdn.Microsoft.com/en-us/library/aa933196(v=SQL.80).aspx

CREATE TABLE new_employees
(
 id_num int IDENTITY(1,1),
 fname varchar (20),
 minit char(1),
 lname varchar(30)
)

INSERT new_employees
   (fname, minit, lname)
VALUES
   ('Karin', 'F', 'Josephs')

INSERT new_employees
   (fname, minit, lname)
VALUES
   ('Pirkko', 'O', 'Koskitalo')
0
Kuberchaun

Cela devrait faire le travail pour vous:

INSERT INTO table_name (username, password)
VALUES('username_u','password_p');

La valeur d'auto-incrémentation sera automatiquement ajoutée par SQL.

0
krishnang