Есть ли в vanilla MySQL ограничение на длину имени таблицы?
(я тестировал до 100 chrs на моем модифицированном MySQL - пока нет ограничений .. У меня нет хотя vanilla MySQL легко доступен, но мне интересно, будет ли моя динамически создаваемая схема таблиц работать на MySQL по умолчанию)
Вопрос : Что произойдет, если вы перейдете на 64 chrs на MySQL по умолчанию? Можете ли вы проверить это и вставить ошибку или результаты MySQL, если таковые имеются?
Сценарий использования nb, когда каждый пользователь никогда не выберет набор данных другого пользователя.
Думаю, это 64 символа. По крайней мере, это предел моей настройки.
Попытка использовать 133 символа:
mysql> create table aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ( id INT );
ERROR 1103 (42000): Incorrect table name 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'
Вот ограничения
Database: 64
Table: 64
Column: 64
Index: 64
Constraint: 64
Stored Function or Procedure: 64
Trigger: 64
View: 64
Compound Statement Label: 16
Вопрос основан на неверных предположениях.
Прямого ответа быть не должно.
Долг каждого товарища SOer - предупредить ОП от неправильного решения. Вместо того, чтобы помогать ему неправильно получать очки репутации.
Всегда избегайте динамически создаваемых схем таблиц. Схема базы данных - это не то, что должно быть динамическим. Данные в таблицах - да. но не сами таблицы
Обратите внимание, что вы используете реляционную базу данных. И хотя установить связь на основе значения поля так же просто, как яйцо, в то же время невозможно на основе имен таблиц.
Поэтому не должно быть динамически создаваемых таблиц и разбиения данных. Используйте одну таблицу для аналогичных данных. Это одно из самых основных правил базы данных.