MySQL执行建表schema报1064错误提示不存在字符的问题排查
错误原因分析
核心问题是建表语句的字段分隔符使用不符合MySQL语法规则:CREATE TABLE 语法要求字段定义块内,不同字段之间用英文逗号 , 分隔,所有字段定义结尾都不能加语句结束符 ;,; 只能放在整个建表语句的末尾(即右括号 ) 之后)。
你在三个表的最后一个字段末尾错误添加了 ;,导致MySQL提前识别为语句结束,后续的 ) 被判定为独立的非法语句,就会出现行号错位、指向不存在的) 或空字符的报错。
具体错误点
department表中department_name VARCHAR (30) NOT NULL;末尾多余分号roles表中department_id INT;末尾多余分号employee表中manager_id INT;末尾多余分号
修正后的完整SQL脚本
DROP DATABASE IF EXISTS `company_db`; CREATE DATABASE `company_db`; USE `company_db`; CREATE TABLE department( id INT PRIMARY KEY NOT NULL AUTO_INCREMENT, department_name VARCHAR (30) NOT NULL ); CREATE TABLE roles( id INT PRIMARY KEY NOT NULL AUTO_INCREMENT, title VARCHAR (30) NOT NULL, salary DECIMAL, department_id INT ); CREATE TABLE employee( id INT PRIMARY KEY NOT NULL AUTO_INCREMENT, first_name VARCHAR (30) NOT NULL, last_name VARCHAR (30) NOT NULL, role_id INT NOT NULL, manager_id INT );
内容的提问来源于stack exchange,提问作者Giovanni
相关产品推荐
相关产品推荐

