MySQL建表时报SQL语法错误,找不到问题原因,请问如何解决?
MySQL建表语法错误排查及修复方案
您的SQL语法存在错误;请查阅与您所用MySQL服务器版本对应的官方手册,以确认第5行附近
create table jobseeker(j_id first_name varchar(20),last_name varchar(20),phone_片段的正确写法
所有语法/逻辑错误汇总
- admin表未给主键指定绑定字段,直接写
primary key不符合语法要求,需新增主键字段或指定现有字段为主键 - jobseeker表中
year of passing字段名包含空格,未用反引号转义也未用下划线命名,MySQL会识别为非法关键字 - 表名包含空格未处理:
job seeker job、company news均为非法表名,需替换为下划线命名或用反引号包裹 - 外键定义错误:外键拼写错误(
foregin应为foreign)、语法格式错误,标准外键定义格式为foreign key (当前表外键字段) references 关联表名(关联表主键字段) - 单表重复定义主键:
company news表同时给两个字段单独声明主键,单表仅能有一个主键,如需联合主键需合并声明 - 手机号字段类型不合理:int(11)最大存储值为2147483647,无法容纳11位国内手机号,建议改用varchar(11)存储
- 建表顺序错误:存在外键依赖的表需要先创建被关联的主表,否则会触发关联表不存在的错误
修复后完整代码
-- 管理员表 create table admin( admin_id int primary key, admin_name varchar(20), admin_password varchar(20) ); -- 求职者表 create table jobseeker( j_id int primary key, first_name varchar(20), last_name varchar(20), phone_no varchar(11), email_id varchar(20), address1 varchar(30), address2 varchar(30), qualification varchar(20), birthday_date date, gender varchar(10), field varchar(50), year_of_passing int(11), board varchar(20), zip int(11), city varchar(20), state varchar(20), username varchar(20), password varchar(20) ); -- 企业表 create table company( c_id int primary key, c_name varchar(20), phone_no varchar(11), address varchar(20), email_id varchar(20), password varchar(20) ); -- 求职申请表(原job seeker job表重命名) create table job_application( id int primary key, j_id int(10), c_id int(11), post varchar(20), foreign key (j_id) references jobseeker(j_id), foreign key (c_id) references company(c_id) ); -- 企业公告表(原company news表重命名) create table company_news( n_id int primary key, c_id int(11), information varchar(50), link varchar(50), foreign key (c_id) references company(c_id) );
内容的提问来源于stack exchange,提问作者Dnyanesh Bharambe
相关产品推荐
相关产品推荐

