ограничение длины имени таблицы mysql? - пожалуйста, проверьте по умолчанию MySQL (спросили в 2010 году для MySQL <5,5) - PullRequest
7 голосов
/ 15 августа 2010

Есть ли в vanilla MySQL ограничение на длину имени таблицы?

(я проверил до 100 часов на моем модифицированном MySQL - пока нет ограничений. У меня нет доступного ванильного MySQL, хотя мне интересно, будет ли моя динамически создаваемая схема таблицы работать на MySQL по умолчанию)

  • Вопрос : Что произойдет, если вы перейдете на 64 часа в MySQL по умолчанию? Можете ли вы проверить это и вставить ошибку MySQL или результаты, если таковые имеются?

  • n.b. сценарий использования, при котором один пользователь никогда не выберет набор данных другого пользователя.

Ответы [ 4 ]

31 голосов
/ 15 августа 2010

Вот и все ограничения

Database: 64 
Table: 64 
Column: 64 
Index: 64 
Constraint: 64 
Stored Function or Procedure: 64 
Trigger: 64 
View: 64 
Compound Statement Label: 16

http://dev.mysql.com/doc/refman/5.0/en/identifiers.html

7 голосов
/ 15 августа 2010

Вопрос основан на неправильных предположениях.
Прямого ответа быть не должно.
Обязанностью каждого ДРУГОГО является предупреждение ОП от неправильного решения. Вместо того, чтобы помогать ему неправильным способом получить очки репутации.

Всегда избегайте динамически создаваемых схем таблиц. Схема базы данных не должна быть динамичной. Данные в таблицах - да. но не сами таблицы

Обратите внимание, что вы используете реляционную базу данных. И хотя установить связь на основе значения поля так же просто, как яйцо, в то же время это невозможно на основе имен таблиц.
Следовательно, не должно быть динамически создаваемых таблиц и разделения данных. Используйте одну таблицу для похожих данных. Это одно из самых основных правил базы данных.

0 голосов
/ 11 ноября 2014

Для меня это не удалось на 54 символов.Я использую MySQL за Django 1.4.5.

Server version: 5.5.40-0ubuntu0.14.04.1 (Ubuntu)
0 голосов
/ 15 августа 2010

Я думаю, что это 64 символа. По крайней мере, это предел моей настройки.

Попытка с 133 символами:

mysql> create table aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ( id INT );
ERROR 1103 (42000): Incorrect table name 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...