MySQL позволяет создавать базу данных с точкой?

with() - это когда вы изначально получаете модель (и). Если у вас уже есть модель (ы), вы можете вместо этого использовать load(). Это называется ленивая нетерпеливая загрузка .

public function show(Standard $standard)
{
    $standard->load('stream');

    return response()->json(['data' => $standard], 200);
} 

25
задан dreftymac 8 May 2019 в 00:15
поделиться

4 ответа

Вы не можете использовать точку в имени базы данных. Кроме того, я бы избегал использовать его в любом идентификаторе. Обычное соглашение - использовать вместо этого подчеркивание. Это будет служить той же цели и позволит избежать путаницы. Если у вас действительно есть веская причина для использования странных и в противном случае недопустимых символов в имени таблицы или поля, то вам нужно экранировать его.

для экранирования идентификаторов в MySQL используйте обратную галочку: [1216 На мой взгляд, хорошая привычка ставить обратные галочки во всех именах полей независимо от того, нужен ли вам , но это уже другая история.

37
ответ дан 28 November 2019 в 18:04
поделиться

Вы можете использовать . ​​ в именах из MySQL 5.1.6 согласно документации .

Однако, как было сказано и будет сказано еще раз, , пожалуйста, не делайте этого. Для каждой проблемы, которую вы решаете сейчас, вы создадите пять, которые будут кусать вас позже. Поскольку . используется для определения имен - например, database.table или table.column вам придется указывать имя вашей базы данных каждый раз, когда вы его используете. *

Вы можете сделать это с обратные пометки:

CREATE TABLE `do.not.do.this` (col INT);

или использование двойных кавычек, если вы установили следующую опцию:

SET sql_mode='ANSI_QUOTES';
CREATE TABLE "asking.for.problems" (col INT);

* Не совсем верно - вы должны заключать в кавычки любой символ, который не является буквенно-цифровым или _ или $ , но . Это особенно хлопотный вариант, чтобы иметь на ваши имена.

26
ответ дан 28 November 2019 в 18:04
поделиться

Before MySQL 5.1.6, database and table names cannot contain /, \, ., or characters that are not allowed in file names (see 8.2. Schema Object Names). In versions after 5.1.6 you have to quote your tablename with a backtick (`) - but as others also advised: you shouldn't do this to prevent any unnecessary trouble.

7
ответ дан 28 November 2019 в 18:04
поделиться

MySQL 5.0.22 не позволяет это делать:

% mysqladmin -uroot -pXXX create foo.bar
mysqladmin: CREATE DATABASE failed; error: 'Incorrect database name 'foo.bar''

Даже если бы это было разрешено, я настоятельно рекомендовал бы против этого.

По крайней мере, вам нужно было бы избегать любых ссылок на эту базу данных с обратными галочками в каждом отдельном запросе, который когда-либо его использует.

3
ответ дан 28 November 2019 в 18:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: