mysql create table 报错near '`id` int(11) NOT NULL AUTO_INCREMENT

本文讨论了在使用MySQL创建表时遇到的SQL语法错误问题,通常这类错误源于编码格式不匹配或特殊字符(如空格和Tab)的不当使用。文章建议避免直接从网络复制SQL语句,而是手动输入或通过先建表再导出结构的方法来规避此类问题。

 

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '`id` int(11) NOT NULL AUTO_INCREMENT,

首先我想说一下,create table 别直接从网上拿了,自己create写一个没那么难吧。甚至直接先建表,再导出结构。

这个问题:大多存在你复制粘贴上面
大多由于网页的编码格式。
所以问题不在于语句上,而在编码转换上
 

你的空格/Tab数据不认识,所以报错了,重新打一遍空格就可以了。

 

-- 创建数据库 CREATE DATABASE IF NOT EXISTS wkbishe; USE wkbishe; -- 学生信息表 CREATE TABLE students ( student_id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(50) NOT NULL, grade ENUM('primary', 'middle', 'high') NOT NULL, learning_style VARCHAR(20) COMMENT '视觉/听觉/动手', interest_tags JSON COMMENT '存储兴趣标签数组 ["数学","编程"]', created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); -- 学科知识体系表 CREATE TABLE subjects ( subject_id INT AUTO_INCREMENT PRIMARY KEY, subject_name VARCHAR(20) NOT NULL COMMENT '数学/物理/编程', grade_level ENUM('p1-p6','m1-m3','h1-h3') NOT NULL, difficulty TINYINT DEFAULT 1 COMMENT '1-5级难度' ); -- 知识点表 CREATE TABLE knowledge_points ( point_id INT AUTO_INCREMENT PRIMARY KEY, subject_id INT NOT NULL, point_name VARCHAR(100) NOT NULL COMMENT '如:分数运算', pre_requisite_id INT COMMENT '前置知识点', core_concept TEXT, FOREIGN KEY (subject_id) REFERENCES subjects(subject_id), FOREIGN KEY (pre_requisite_id) REFERENCES knowledge_points(point_id) ); -- 学生能力评估表 CREATE TABLE ability_assessments ( assessment_id INT AUTO_LOGIC_INCREMENT PRIMARY KEY, student_id INT NOT NULL, subject_id INT NOT NULL, logical_thinking TINYINT COMMENT '1-5分', memory_ability TINYINT, spatial_imagination TINYINT, assessment_date DATE, FOREIGN KEY (student_id) REFERENCES students(student_id), FOREIGN KEY (subject_id) REFERENCES subjects(subject_id) ); -- 学习路径表 CREATE TABLE learning_paths ( path_id INT AUTO_INCREMENT PRIMARY KEY, student_id INT NOT NULL, subject_id INT NOT NULL, current_point_id INT COMMENT '当前学习节点', progress FLOAT DEFAULT 0.0 COMMENT '0-1进度值', generated_time DATETIME, FOREIGN KEY (student_id) REFERENCES students(student_id), FOREIGN KEY (subject_id) REFERENCES subjects(subject_id), FOREIGN KEY (current_point_id) REFERENCES knowledge_points(point_id) ); -- 学习路径详情表 CREATE TABLE learning_path_details ( detail_id INT AUTO_INCREMENT PRIMARY KEY, path_id INT NOT NULL, point_id INT NOT NULL, order_num INT NOT NULL COMMENT '路径顺序', estimated_time INT COMMENT '分钟', completed BOOLEAN DEFAULT false, FOREIGN KEY (path_id) REFERENCES learning_paths(path_id), FOREIGN KEY (point_id) REFERENCES knowledge_points(point_id) ); -- 知识点关系表(图谱结构) CREATE TABLE knowledge_point_relations ( relation_id INT AUTO_INCREMENT PRIMARY KEY, from_point INT NOT NULL, to_point INT NOT NULL, relation_type ENUM('prerequisite','correlated'), weight FLOAT DEFAULT 1.0, FOREIGN KEY (from_point) REFERENCES knowledge_points(point_id), FOREIGN KEY (to_point) REFERENCES knowledge_points(point_id) ); -- 交叉学科表 CREATE TABLE cross_subject ( cross_id INT AUTO_INCREMENT PRIMARY KEY, main_subject INT NOT NULL, related_subject INT NOT NULL, relation_description TEXT, FOREIGN KEY (main_subject) REFERENCES subjects(subject_id), FOREIGN KEY (related_subject) REFERENCES subjects(subject_id) ); -- 创建索引 CREATE INDEX idx_student_grade ON students(grade); CREATE INDEX idx_knowledge_subject ON knowledge_points(subject_id); CREATE INDEX idx_path_student ON learning_paths(student_id);报错1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'AUTO_LOGIC_INCREMENT PRIMARY KEY, student_id INT NOT NULL, subject_id ' at line 3
05-12
评论 5
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值