Failed - Error on Table table_name!

本文详细解析了在MySQL中创建表格时遇到的语法错误,特别是关于VARCHAR字段长度设置的问题。通过实例展示了错误原因及修正方法,帮助开发者避免常见建表陷阱,确保数据库结构设计的正确性和高效性。
CREATE TABLE `mi`.`mi_oauth` (
`id` int NOT NULL AUTO_INCREMENT,
`uid` int NOT NULL COMMENT '用户ID',
`oauth_type` int NOT NULL DEFAULT 1 COMMENT '1 QQ登录\r\n2 微信登录\r\n3 新浪微博登录',
`access_token` varchar NOT NULL COMMENT '不同平台返回的token',
`oauth_uid` varchar NOT NULL COMMENT '授权用户唯一标识',
`expires_in` varchar NULL COMMENT 'access_token的生命周期,不同平台不一样',
`oauth_date` int NOT NULL COMMENT '授权时间',
PRIMARY KEY (`id`) ,
UNIQUE INDEX `uid` (`uid`)
)
ENGINE=MyISAM
COMMENT='用户授权信息表'
;
今天建表的时候,用上述SQL语句!一直报错如下:

[Msg] Failed - Error on Table mi_oauth - 1064 - 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 'NOT NULL COMMENT '不同平台返回的token',
`oauth_uid` varchar NOT NULL COM' at line 5


反复纠结才发现!原来mysql在varchar类型的字段时候必须规定长度!如下:

CREATE TABLE `mi`.`mi_oauth` (
`id` int NOT NULL AUTO_INCREMENT,
`uid` int NOT NULL COMMENT '用户ID',
`oauth_type` int NOT NULL DEFAULT 1 COMMENT '1 QQ登录\r\n2 微信登录\r\n3 新浪微博登录',
`access_token` varchar(255) NOT NULL COMMENT '不同平台返回的token',
`oauth_uid` varchar(255) NOT NULL COMMENT '授权用户唯一标识',
`expires_in` varchar(255) NULL COMMENT 'access_token的生命周期,不同平台不一样',
`oauth_date` int NOT NULL COMMENT '授权时间',
PRIMARY KEY (`id`) ,
UNIQUE INDEX `uid` (`uid`)
)
ENGINE=MyISAM
COMMENT='用户授权信息表'
;

OK!


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值