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.
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
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
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')
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.