导入登录注册表单SQL数据库至phpMyAdmin时遇#1064错误求助
解决MySQL 1064语法错误:创建登录表失败的修复方案
嘿,我看到你在搭建登录/注册表单的数据库时遇到了MySQL的1064语法错误,这是新手写SQL时很容易踩的小坑,我来帮你搞定它!
问题根源分析
你的SQL脚本里有两个明显的语法问题:
- 列名的引号使用错误:在定义主键时,你用了单引号
'email'和'password'来包裹列名。MySQL里,单引号是用来包裹字符串值的,列名应该用反引号(`),或者如果列名不是关键字的话可以直接写,不用引号。 - Integer类型的冗余参数:
age integer(50)里的(50)完全没必要——Integer类型的存储大小是固定的,括号里的数字只是控制显示宽度,对实际存储没有任何影响,直接写INT就够了。
另外还有个小建议:把email和password一起设为主键其实不太合理。因为用户后续可能会修改密码,这会导致主键变更,而且邮箱本身应该是唯一的,单独把email设为主键或者唯一键会更合理。
修复后的SQL脚本
推荐版本(用email作为主键)
CREATE TABLE IF NOT EXISTS LoginTable( name VARCHAR(100) NOT NULL, email VARCHAR(100) NOT NULL DEFAULT "", password VARCHAR(50) NOT NULL DEFAULT "", age INT NOT NULL, PRIMARY KEY (email) );
如果坚持使用复合主键(不推荐)
CREATE TABLE IF NOT EXISTS LoginTable( name VARCHAR(100) NOT NULL, email VARCHAR(100) NOT NULL DEFAULT "", password VARCHAR(50) NOT NULL DEFAULT "", age INT NOT NULL, PRIMARY KEY (`email`, `password`) -- 这里用反引号包裹列名 );
把上面的代码替换你的原脚本,再导入phpMyAdmin应该就能成功执行了!
内容的提问来源于stack exchange,提问作者TheGame
相关产品推荐
相关产品推荐

