如何在MySQL中设置Year数据类型

| 我无法理解此sql语句出了什么问题
INSERT INTO tbl_car_model_year_rate
SET car_model_id =4,
FROM =2008,
TO =2011,
with_driver =1,
per_day =1000,
ten_days =10000,
twenty_days =20000,
thirty_days =30000,
image =  \'1303166512test.jpg\',
created_at = NOW( ) ,
created_by =1
数据类型
car_model_id    int(11) 
image   text        
from    year(4)
to  year(4)
with_driver tinyint(1)          
per_day int(11) 
ten_days    int(11) 
twenty_days int(11)
thirty_days int(11)
created_at datetime 
created_by int(11)
错误讯息
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near \'from  =2008, to   =2011, with_driver =1, per_day  =1000, ten_days =10000,     twenty\' at line 1
已邀请:
如果将代码更改为:
INSERT INTO tbl_car_model_year_rate SET car_model_id =4,
`FROM` =2008,
`TO` =2011,
with_driver =1,
per_day =1000,
ten_days =10000,
twenty_days =20000,
thirty_days =30000,
image =  \'1303166512test.jpg\',
created_at = NOW( ) ,
created_by =1
会的。 如果您在反引号\“`\”中添加字段和/或表名,则几乎可以使用任何名称。 失败原因
FROM
是保留字(如
select *
FROM
tablename
) 您通过使用
FROM
作为列名(
select * FROM FROM WHERE FROM = AND
)来混淆MySQL 我的建议 不要为字段名使用保留字。 将列名从“ 4”更改为“ 11”或“ 12” 从
TO
YearTo
EndYear
。 使用保留字作为列名很容易引起混淆,在所有内容周围加上反引号只会使内容难以阅读和丑陋,同时仍然令人困惑。
您正在使用保留字作为列名。 某些字词,例如SELECT,DELETE, 或BIGINT保留,并要求 特殊处理 标识符,例如表和列 名称。这对于 内置函数的名称。 保留字被允许为 标识符,如果您引用为 在第8.2节“架构”中进行了介绍 对象名称”: 有关保留字的更详细列表,包括版本之间的差异,请参见MySQL 5.5中的保留字。 http://dev.mysql.com/doc/refman/5.5/en/reserved-words.html
TO和FROM是保留字,您应该将其放在单个\ out中,例如\'FROM \',\'TO \'。 并记住避免在生成表时对列使用保留字。请参见下面的链接,以获得mysql保留字的完整参考 http://dev.mysql.com/doc/refman/5.0/en/reserved-words.html
这是在MySQL中正确使用Year字段的示例: MySQL:将当前年份添加为字段“ year”的默认值

要回复问题请先登录注册