как сделать выбор, который всегда возвращает ноль строк - PullRequest
3 голосов
/ 29 июня 2009

Я хочу определить, существует ли столбец в таблице для какого-либо драйвера jdbc.

Чтобы узнать столбцы в таблице, я должен сделать запрос к таблице и затем получить ResultSetMetaData для информации, но это довольно дорого в 99% случаев.

В MySQL у меня есть:

SELECT * FROM <i>tablename</i> LIMIT 0,0

В Intersystems Caché у меня есть:

SELECT TOP 0 * FROM <i>tablename</i>

Но, например, в JavaDB я вообще не могу применять какие-либо ограничения.

Есть ли какой-нибудь общий запрос, который дал бы мне тот же результат и все еще был бы справедливым с производительностью БД?

Заранее спасибо.

Ответы [ 5 ]

23 голосов
/ 29 июня 2009
SELECT * FROM tableName WHERE 'You' = 'Smart'
17 голосов
/ 29 июня 2009

... или вы можете просто использовать маршрут DatabaseMetaData.

Есть метод getColumns, который делает то, что вам нужно, без создания набора результатов.

8 голосов
/ 29 июня 2009

SELECT * FROM table_name WHERE 1 = 2;

4 голосов
/ 29 июня 2009
select * from tablename where 1 != 1
3 голосов
/ 29 июня 2009

Не имеет отношения, но если вам просто нужны столбцы в MySQL, вы можете запустить SHOW FIELDS FROM tablename. Это возвращает столбцы и связанную информацию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...