Я думаю о том, что программа будет динамически создавать новые таблицы по мере необходимости. Могу ли я иметь таблицы с именами в MySQL?
Можно ли использовать числа в качестве имен таблиц в MySQL?
Ответ 1
Правила для именования объектов, включая таблицы в MySql:
http://dev.mysql.com/doc/refman/5.1/en/identifiers.html
Идентификаторы могут начинаться с цифры, но , если только не может состоять исключительно из цифр.
Итак, это будет неверно:
SELECT * FROM 12345;
Но было бы справедливо следующее:
SELECT * FROM `12345`;
Или, если он работает в режиме ANSI, будет работать следующее:
SET @@session.sql_mode=ANSI_QUOTES;
SELECT * FROM "12345";
Ответ 2
как отметил Карим и Стив Вет, да, вы можете, но вам придется процитировать их следующим образом:
SELECT * FROM `3516`
Могу ли я предложить, возможно, переосмыслить ваш script? Добавьте префикс: таблица с именем "t3516" не будет такой запутанной, как просто "3516".
Кроме того, вы можете преобразовать число, чтобы просто использовать буквы, а не любые числа:
table 0 - t_a
table 1 - t_b
table 2 - t_c
table 25 - t_z
table 26 - t_aa
table 27 - t_ab
... etc
Ответ 3
Ответ - да, как указано в karim79, до тех пор, пока вы будете цитировать имена таблиц. Конечно, вы можете использовать префикс с числами, например. mytable1, mytable2,...; это будет работать без цитирования.
Тем не менее, вы должны действительно подумать о том, почему вы хотите создать так много таблиц. Принятый способ делать вещи - иметь все, что принадлежит вместе в одной таблице. Поэтому вместо того, чтобы иметь table1, table2... вы использовали бы одну таблицу и сохранили бы число в столбце.
Это просто естественный путь. Ваш способ делать вещи может легко привести к множеству проблем (изменение схемы БД является проблематичным для резервного копирования, затрудняет работу других инструментов с БД из-за большого количества таблиц, изменения схемы должны быть выполнены для всех таблиц). Динамическое изменение схемы во время выполнения обычно не является хорошей идеей.
Ответ 4
Я думаю, что это не должно быть предпочтительным вообще, потому что это будет более запутанным и трудно запоминающимся. имя таблицы должно относиться к хранящимся данным. Это лучшая привычка.
Ответ 5
используйте backtick (`), чтобы указать имя таблицы, если это чисто цифры. он находится ниже кнопки esc на клавиатуре