2012-10-07 61 views
6

Digamos que tengo una tabla de usuarios y la columna id es la clave principal y se incrementa automáticamente.Insertar manualmente en una tabla por instrucción SQL, pero la clave está autoincrementada

Quiero simplemente tratar de añadir usuario manualmente por esta declaración:

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

pero no quiero para especificar el valor ?, sólo quiero añadir a la siguiente fila.

Gracias a todos, me olvidé de configurar la columna de identificación para el incremento automático. ahora funciona.

Respuesta

8

Así que no lo use ... hacerlo de esta manera ..

Y asegúrese de usar comillas simples para insertar strings

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

Como usted ha dicho que su campo es auto incremented, SQL aumentará automáticamente el valor del campo id por 1

+0

Gracias, me olvidé de configurarlo para incrementar automáticamente – Mike

+0

@Mike De nada :) –

0

Si id es un valor auto incrementado, simplemente deje esa columna fuera de la inserción y se completará con el valor auto incrementado. Por ejemplo, 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') 
3

Si desea insertar manualmente un valor a una columna incrementado automático se puede utilizar el IDENTITY_INSERT de SQL. por ejemplo

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 

se puede leer más aquí IDENTITY_INSERT

0

Esto debería hacer el trabajo para usted:

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

El valor incrementado automáticamente se añadirá automáticamente por SQL.

Cuestiones relacionadas