Название DB с дефисом

99
24 января 2022, 05:40

Возможно ли создать базу данных с дефисом в названии? Если да, то как? Спасибо

Answer 1

Приведу перевод ответа с enSO упомянутый в комментарии к вопросу пользователем @Yaant

Согласно документации mysql названия схем могут состоять из буквенно-числовых символов, нижнего подчеркивания и знака доллара. Для использования других ANSI-символов название таблицы необходимо заключать в одинарные обратные кавычки:

`database-name`

Но в bash они имеют другое значение и используются для подстановки команд. В bash также есть несколько типов строк - в двойных и одинарных кавычках. Разница между ними в том, что в двойных кавычках осуществляется обработка переменных и подстановка команд, а в одинарных нет. Таким образом можно использовать обратные одинарных кавычки вместе с семантикой mysql в одинарных кавычках:

mysql -e 'CREATE DATABASE `db-name`;'

но нужно экранировать их использование при использовании в двойных кавычках, чтобы bash не интерпретировал их как командные действия:

mysql -e "CREATE DATABASE \`table-db\`;"

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

mysql -e "CREATE DATABASE \`$dbname\`;"

или так:

mysql -e 'CREATE DATABASE `'$dbname'`;'
READ ALSO
Вывод четных и нечетных цифр и сумма

Вывод четных и нечетных цифр и сумма

не могу решить вопросСуть, нужно написать функцию которя будет принимать число и значение 'odd' или 'even' И так же посчитает всю сумму четных...

100