sql - img - title html attribute
Haga que H2 trate el nombre citado y el nombre no citado como el mismo (1)
H2 parece hacer una diferencia entre nombre con comillas y nombre sin comillas. ¿Hay alguna manera de hacer que se traten de la misma manera?
Aquí están las pruebas que he hecho:
CREATE TABLE test (dummy INT);
CREATE TABLE "testquote" (dummy INT, "quotedDummy" INT);
Aquí están las consultas:
SELECT * FROM test; --work
SELECT * FROM "test"; -- doesn''t work
SELECT * FROM "testquote"; --work
SELECT * FROM testquote; --doesn''t work
SELECT dummy FROM "testquote"; --work
SELECT quotedDummy FROM "testquote"; --doesn''t work
SELECT "quotedDummy" FROM "testquote"; --work
¿Qué puedo hacer para que esas consultas funcionen con H2?
Los nombres de las citas en H2 distinguen entre mayúsculas y minúsculas , como lo requiere la especificación SQL. Eso significa que esto funcionará:
CREATE TABLE "testquote" (dummy INT, "quotedDummy" INT);
SELECT * FROM "testquote";
pero esto no lo hará:
SELECT * FROM "TestQuote";
SELECT * FROM "TESTQuote";
SELECT * FROM "TESTQUOTE";
Los nombres entre comillas no distinguen entre mayúsculas y minúsculas en H2 . Normalmente se convierten en mayúsculas (como en Oracle y otras bases de datos). Eso significa las declaraciones
CREATE TABLE test (dummy INT);
SELECT * FROM test;
son lo mismo que
CREATE TABLE "TEST" ("DUMMY" INT);
SELECT * FROM "TEST";
En eso H2 se comporta de la misma manera que Oracle. Esto es un poco diferente sobre cómo otras bases de datos como MySQL y PostgreSQL manejan los nombres de los identificadores. H2 tiene una función de compatibilidad: si agrega ;DATABASE_TO_UPPER=FALSE
a la URL de la base de datos, los identificadores entre comillas no se convierten a mayúsculas, lo que significa que también distinguen entre mayúsculas y minúsculas. Pero necesita agregar esto al crear la base de datos, y cada vez que la use (si agrega la configuración de las bases de datos existentes, los identificadores de los objetos existentes ya se convertirán en mayúsculas).
Por cierto, esto no tiene nada que ver con la función SUPERIOR , que está destinada a los datos. Su pregunta es sobre identificadores, no datos.