Использование ключевых слов языка в выражениях SQL - PullRequest
0 голосов
/ 15 августа 2011

Что ж, у меня в базе данных есть поле для вызова int, и я создал программу на C #, которая обновляет int и некоторые другие поля, и все прошло хорошо, пока поле int не сообщит об ошибке в синтаксисе.и я хочу, чтобы SQL означал int как просто имя поля, а не ключевое слово.Большое спасибо.

1 Ответ

7 голосов
/ 15 августа 2011

INT - зарезервированное слово.Вы можете использовать зарезервированные слова в MySQL, заключив их в обратные галочки:

SELECT `int` FROM mytable ...

Но, если честно, проще отказаться от использования зарезервированных слов в качестве идентификаторов.То есть, когда вы определяете таблицу, назовите свой столбец как-нибудь иначе.

Рекомендуется также назвать столбцы тем, что более четко описывает их содержание или назначение.int довольно переопределено и может сбивать с толку;это все равно что называть функцию C # thefunction().: -)

См. http://dev.mysql.com/doc/mysqld-version-reference/en/mysqld-version-reference-reservedwords.html для списков зарезервированных слов по версии MySQL.


Ваш комментарий:

Будьте осторожны в использованииправильный тип кавычек.Используйте одинарные кавычки для разделения строк и литералов даты.В MySQL используйте обратные галочки для разделения идентификаторов столбцов, таблиц и т. Д.

SELECT ... WHERE `column` = 'string'

На клавиатуре США обратные галочки находятся на одной клавише с тильдой (~).


Я прошу прощения за предположение, что вы используете MySQL.Возможно, вы используете Microsoft SQL Server или какую-либо другую марку СУБД.Microsoft SQL Server не использует обратных тиков;вместо этого вам нужно заключить идентификаторы в квадратные скобки.

См. также Используются ли в разных базах данных разные кавычки?

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