Может ли поле таблицы содержать дефис?
У меня есть таблица в таблице MySQL с именем поля "продукт" и вы хотите переименовать ее в "ds-product".
Система типа CMS, которую я использую, использует идентификатор полей формы как имя поля таблицы для вставки.
Для большинства это работает отлично, но для определенного поля он добавляет "ds-" к любому идентификатору, который я ему даю, поэтому я должен сделать имя поля таблицы совпадающим.
Однако при попытке выполнить запрос я получаю сообщение об ошибке
Неизвестный столбец "sales.ds" в "списке полей"
Есть ли способ иметь поле, называемое ds-продуктом?
Ответы
Ответ 1
Да, вы можете использовать знаки препинания, пробелы, международные символы и зарезервированные слова SQL, если вы используете идентификаторы с разделителями:
SELECT * FROM `my-table`;
В MySQL используйте обратные тики. В стандартном SQL используйте двойные кавычки.
Или, если вы используете MySQL, вы можете установить ANSI_QUOTES
SQL-режим:
SET SQL_MODE = ANSI_QUOTES;
SELECT * FROM "my-table";
Ответ 2
Попробуйте положить скобки в последнюю часть своего вызова на стол. в вашем случае:
SELECT * FROM [TABLE-NAME];
просто поставьте скобки только в имени таблицы. не по всей базе данных находится
SELECT * FROM some_database.anotherdatabase.[your-table];
P.S. также работает над столбцами.
Я использую Microsoft SQL Server Management.