首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHPMyAdmin中的SQL查询未执行显示错误#1071

问PHPMyAdmin中的SQL查询未执行显示错误#1071
EN

Stack Overflow用户
提问于 2014-02-12 07:31:25
回答 1查看 675关注 0票数 0

我试图执行以下sql查询。这给了error #1071。我把'varchar (300)'改成了'varchar (255)',把'MyISAM'改成了'InnoDB'。还是不起作用。我对MySQL不熟悉。

最后守则:

代码语言:javascript
复制
CREATE TABLE IF NOT EXISTS `nwjhmu_users_oauth` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `user_id` int(11) NOT NULL,
  `provider` varchar(100) NOT NULL,
  `identifier` varchar(255) NOT NULL,
  `email` varchar(200) NOT NULL,
  `displayName` varchar(150) NOT NULL,
  `firstName` varchar(100) NOT NULL,
  `lastName` varchar(100) NOT NULL,
  `profileURL` varchar(255) NOT NULL,
  `photoURL` varchar(255) NOT NULL,
  `webSiteURL` varchar(255) NOT NULL,
  `description` varchar(255) NOT NULL,
  `gender` varchar(10) NOT NULL,
  `language` varchar(10) NOT NULL,
  `age` tinyint(3) unsigned NOT NULL,
  `birthDay` tinyint(3) unsigned NOT NULL,
  `birthMonth` tinyint(3) unsigned NOT NULL,
  `birthYear` int(10) unsigned NOT NULL,
  `country` varchar(50) NOT NULL,
  `region` varchar(50) NOT NULL,
  `city` varchar(50) NOT NULL,
  `zip` varchar(20) NOT NULL,
  `registerDate` datetime NOT NULL,
  `modified` datetime NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `provider` (`provider`,`identifier`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-02-12 07:38:04

查询没有什么问题。语法非常好。但是,根据MySQL中密钥长度的限制,您正在使用“provider”和“标识符”作为唯一键,这可能非常长。但是,您似乎使用的是过时的版本MySQL,因为当前版本支持高达3072字节的键大小。

一个解决办法是,您可以使用(例如)字段的前100个字符:

代码语言:javascript
复制
UNIQUE KEY `provider` (`provider`(100),`identifier`(100))

而不是:

代码语言:javascript
复制
UNIQUE KEY `provider` (`provider`,`identifier`)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21721409

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档