我正在考虑有一个程序,在需要时动态创建新表.我可以在MySQL中使用仅用数字命名的表吗?
命名对象的规则,包括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";
正如Karim和Steve Weet指出的那样,是的,你可以,但你必须像这样引用它们:
SELECT * FROM `3516`
我可以建议重新考虑你的剧本吗?添加前缀:名为"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