2009-05-30 22 views
16

Necesito una tabla que almacene parejas clave-valor, así que creé una con una columna llamada "Clave" y una columna llamada "Valor".Cómo INSERTAR en una columna cuyo nombre es una palabra clave sql

Esta falla:

insert into mykeyvalues (Key,Value) values ('FooKey', 'FooValue') 

"sintaxis incorrecta cerca de la 'llave' palabra clave".

Tal vez no debería llamarlo "Clave", pero me pregunto si es posible trabajar con una columna cuyo nombre es una palabra clave sql.

Gracias

Respuesta

27

Puede rodear nombres de columna como que con corchetes []. Por lo tanto:

insert into mykeyvalues ([Key],[Value]) values ('FooKey', 'FooValue') 
+0

Gracias por su respuesta! – Kurt

+1

¿Qué pasa si obtiene el valor "clave" de Java y no puede poner corchetes manualmente alrededor de él. Entonces, ¿qué haría? – CodeKingPlusPlus

13

utilizar cualquiera invertidas (`) o comillas dobles (") alrededor de los identificadores en la consulta. Por ejemplo:

INSERT INTO mykeyvalues ("Key", "Value") values ('FooKey', 'FooValue') 

Pero en el largo plazo, esto sólo reduce la portabilidad. Es más fácil usar un nombre diferente.

+0

En realidad, creo que su ejemplo es ANSI SQL conforme a los estándares. – RBarryYoung

+0

Sí, pero los DB de la vida real a menudo no respetan ANSI, p. Ej. uno quiere comillas dobles, otro quiere corchetes, otro quiere palos, etc., un dolor de cabeza después de otro :-( –

+0

Gracias. No estoy seguro de si la respuesta de John o esta debería ser la respuesta aceptada. Ambos trabajos como un amuleto. – Kurt

Cuestiones relacionadas