Mysql PHPMyAdmin中的SQL查询未执行,显示错误#1071
我试图执行以下sql查询。哪个给出了Mysql PHPMyAdmin中的SQL查询未执行,显示错误#1071,mysql,sql,mysqli,Mysql,Sql,Mysqli,我试图执行以下sql查询。哪个给出了错误#1071。我已将'varchar(300)更改为'varchar(255),'MyISAM'更改为'InnoDB'。仍然不起作用。我不熟悉MySQL 最终代码: CREATE TABLE IF NOT EXISTS `nwjhmu_users_oauth` ( `id` int(11) NOT NULL AUTO_INCREMENT, `user_id` int(11) NOT NULL, `provider` varchar(100) NO
错误#1071
。我已将'varchar(300)
更改为'varchar(255)
,'MyISAM'
更改为'InnoDB'
。仍然不起作用。我不熟悉MySQL
最终代码:
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 ;
提前感谢。查询没有问题。语法非常好。 但是,您正在使用“provider”和“identifier”作为唯一密钥,根据MySQL中密钥长度的限制,它们可能非常长。但是,您似乎正在使用过时的MySQL版本,因为当前版本支持的密钥大小高达3072字节 一种解决方法是,您可以使用(比如)字段的前100个字符:
UNIQUE KEY `provider` (`provider`(100),`identifier`(100))
而不是:
UNIQUE KEY `provider` (`provider`,`identifier`)
您能提供实际的错误文本,而不是期望我们通过数字了解所有错误代码吗?这通常会给出一些关于这个问题的好提示:)对我来说很好,谢谢你的回答。