我可以在MySQL表中使用数字作为列名吗?

时间:2017-03-08 09:54:23

标签: php mysql

代码是

CREATE TABLE 7e11bdd4717ced2cd931f0942b897bb5(
 id int AUTO_INCREMENT NOT NULL PRIMARY KEY,
 book_id varchar(50),
 fordate varchar(50),
 fortime varchar(50),
 forperson varchar(50),
 booker_id varchar(50),
 1_1 int,
 3_2 int,
 4_6 int,
 2_10 int,
 booking_timestamp varchar(50)

);

代码没有执行。问题是什么?我也尝试过这样在数字上加上``,比如

CREATE TABLE 7e11bdd4717ced2cd931f0942b897bb5(
 id int AUTO_INCREMENT NOT NULL PRIMARY KEY,
 book_id varchar(50),
 fordate varchar(50),
 fortime varchar(50),
 forperson varchar(50),
 booker_id varchar(50),
 `1_1` int,
 `3_2` int,
 `4_6` int,
 `2_10` int,
 booking_timestamp varchar(50)

);

错误减少但未执行。 [有趣的是,这段代码几天前就开始工作了,但突然没有工作。]

2 个答案:

答案 0 :(得分:0)

使用数字作为列名称没有问题。

虽然表名有限制,但不允许表名以数字开头,如果你愿意,可以包含一个数字,但它不能以一个数字开头(不,即使你不逃避号码)

*:在我看来,可能是那个在你离开时必须维护你的项目的人,你真的不应该因为它不具有描述性,如果我查看你的代码我不会得到什么列1_1是或者它拥有什么数据,但这是另一个问题的另一个答案

答案 1 :(得分:0)

来自文件:https://dev.mysql.com/doc/refman/5.6/en/identifiers.html

  

标识符可以以数字开头,但除非引用可能不包含   只是数字。

所以你必须用反引号引用它() like this 7e11bdd4717ced2​​cd931f0942b897bb5 , 1_1`。

SELECT `1_1` FROM `7e11bdd4717ced2cd931f0942b897bb5`