Как использовать зарезервированное слово в SQL в качестве имени таблицы? - PullRequest
0 голосов
/ 01 февраля 2019

При использовании этого запроса:

INSERT INTO order (order_quantity)
           VALUES ('50')

Я получаю сообщение об ошибке:

У вас есть ошибка в синтаксисе SQL;проверьте руководство, соответствующее вашей версии сервера MariaDB, на предмет правильного синтаксиса для использования рядом со значением 'order (order_quantity) VALUES ('50') 'в строке 146

Что не так с моим запросом?

1 Ответ

0 голосов
/ 01 февраля 2019

Зарезервированные слова не рекомендуется использовать в качестве имен баз данных, таблиц, столбцов, переменных или других объектов.Если вы хотите использовать зарезервированное слово, используемое в качестве имени объекта в стандартном синтаксисе ANSI, оно должно быть заключено в двойные кавычки, чтобы позволить реляционному механизму (какой бы он ни был) использовать это слово как объект, а не какключевое слово в данном контексте.

Вот несколько примеров, специфичных для различных механизмов SQL:

order - ключевое слово SQL, используемое для сортировки результатов (ORDER BY ...)

Оберните отступы вокруг него, если вы используете MySQL или Maria DB

INSERT INTO `order` (order_quantity) VALUES ('50');

Оберните скобки вокруг него, если вы используете MS SQL Server

INSERT INTO [order] (order_quantity) VALUES ('50');

Оберните двойные кавычки вокруг него, если вы используете pgSQL

INSERT INTO "order" (order_quantity) VALUES ('50');

Например, ничто (кроме здравого смысла) не мешает вамот создания базы данных с именем INSERT с таблицей INTO, имеющей столбец VALUE(42)

enter image description here

Да, этот запрос работает:

USE [INSERT];
SELECT [INTO].[VALUE(42)] FROM [INTO];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...