您是否允许在MySQL中使用数字作为表名?

chu*_*tar 12 mysql

我正在考虑有一个程序,在需要时动态创建新表.我可以在MySQL中使用仅用数字命名的表吗?

kar*_*m79 35

命名对象的规则,包括MySql中的表:

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

标识符可以以数字开头,但 除非引用可能不仅仅由数字组成.

所以这将是无效的:

 SELECT * FROM 12345;
Run Code Online (Sandbox Code Playgroud)

但以下内容有效:

 SELECT * FROM `12345`;
Run Code Online (Sandbox Code Playgroud)

或者,如果在ANSI模式下运行,则以下操作:

SET @@session.sql_mode=ANSI_QUOTES;
SELECT * FROM "12345";
Run Code Online (Sandbox Code Playgroud)


nic*_*ckf 12

正如Karim和Steve Weet指出的那样,是的,你可以,但你必须像这样引用它们:

SELECT * FROM `3516`
Run Code Online (Sandbox Code Playgroud)

我可以建议重新考虑你的剧本吗?添加前缀:名为"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
Run Code Online (Sandbox Code Playgroud)