You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MySQL ERROR 1064(42000)语法错误求助:创建details表语句报错

解决MySQL ERROR 1064 (42000) 创建表语法错误

错误原因

触发ERROR 1064 (42000)的核心问题是:MySQL中不能用**单引号(')包裹表名、列名这类标识符。单引号仅用于包裹字符串类型的值,标识符需要用反引号(`)**包裹,若标识符不是MySQL关键字,也可以直接省略引号。

原错误SQL

CREATE TABLE IF NOT EXISTS 'details' (
'id' int(11) NOT NULL AUTO_INCREMENT,
'name' varchar(200) NOT NULL,
'email' varchar(200) NOT NULL,
'gender' varchar(200) NOT NULL,
'address' longtext NOT NULL,
'username' varchar(30) NOT NULL,
'password' varchar(30) NOT NULL,
'verify' tinyint(1) NOT NULL DEFAULT '0',
PRIMARY KEY ('id')
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1;

修正后的SQL

方法1:用反引号包裹标识符

CREATE TABLE IF NOT EXISTS `details` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(200) NOT NULL,
`email` varchar(200) NOT NULL,
`gender` varchar(200) NOT NULL,
`address` longtext NOT NULL,
`username` varchar(30) NOT NULL,
`password` varchar(30) NOT NULL,
`verify` tinyint(1) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1;

方法2:省略引号(当前所有标识符均非MySQL关键字)

CREATE TABLE IF NOT EXISTS details (
id int(11) NOT NULL AUTO_INCREMENT,
name varchar(200) NOT NULL,
email varchar(200) NOT NULL,
gender varchar(200) NOT NULL,
address longtext NOT NULL,
username varchar(30) NOT NULL,
password varchar(30) NOT NULL,
verify tinyint(1) NOT NULL DEFAULT '0',
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1;

内容的提问来源于stack exchange,提问作者Manoj M

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 04:10:38