Mysql创建表过程中报1064错误
发表于:2025-02-02 作者:千家信息网编辑
千家信息网最后更新 2025年02月02日,我在自己搭建的mysql服务中,在使用create table创建表时报了1064错误,尝试网上找了各种解决方法,最后还是被自己试着解决了。解决的有的稀里糊涂的,毕竟我自己对数据库知识还没个很清晰的认
千家信息网最后更新 2025年02月02日Mysql创建表过程中报1064错误
我在自己搭建的mysql服务中,在使用create table创建表时报了1064错误,尝试网上找了各种解决方法,最后还是被自己试着解决了。解决的有的稀里糊涂的,毕竟我自己对数据库知识还没个很清晰的认知。废话不多说了,下面看我的解决历程吧。
自己创建表的初衷:想要从无到有的尝试
set names utf8set foreign_key_checks=0drop table if exists `own_reimbursement`;create table `own_reimbursement` ( `id` int(10) not null AUTO_INCREMENT, `start_time` date not null default, `end_time` date not null default, `travel_time` int(3) not null default, `place_name` char(30) default comment '地名', `project_name` char(30) default comment '项目名称', `venue_name` char(30) default comment '场馆名称', `personnel_name` char(30) default comment '人员', `hotel_expense` float(7) default comment '住宿费', `taxi_fare` float(7) not null default comment '打的费', `travel_allowance` float(7) not null default comment '出差补助', `road_fee` float(7) not null default comment '路费', `subsidy` float(7) not null default comment '报销合计', primary key (`id`)) ENGINE=InnoDB AUTO_INCREMENT=100 DEFAULT CHARSET=utf8;BEGIN;INSERT INTO `own_reimbursement` VALUES ('1', '2018-08-22', '2018-08-31', '10', '江西景德镇','xx项目','xxxx运动中心','王思聪','1830','195.8','750','738','3513.8');COMMIT;SET FOREIGN_KEY_CHECKS = 1;
在执行时一直报1064错误,让我百思不得其解,还傻傻的以为真是version问题,还特意找了相关的version说明看(下了英文版的一脸懵逼的),无赖直接简单粗暴的在网上搜mysql 创建表示报1064错误,还真看到不少解决方法,但没一条适用的。
[SQL]set names utf8set foreign_key_checks=0drop table if exists `own_reimbursement`;[Err] 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 'set foreign_key_checks=0drop table if exists `own_reimbursement`' at line 2
网上解决版本:
1.查看create table 语句里面的表、列、索引都要反斜杠符号也可以不使用,但不能写成 '单引号。不然执行就会报1064错误了
2.不要使用mysql的保留字
我的错误是因为 没搞清楚default。去掉default后就成功了。
set names utf8;set foreign_key_checks = 0;drop table if exists `own_reimbursement`;create table `own_reimbursement` ( `id` int(10) not null AUTO_INCREMENT, `start_time` date not null , `end_time` date not null , `travel_time` int(3) not null , `place_name` char(30) NOT NULL comment '地名', `project_name` char(30) NOT NULL comment '项目名称', `venue_name` char(30) NOT NULL comment '场馆名称', `personnel_name` char(30) NOT NULL comment '人员', `hotel_expense` float(7) comment '住宿费', `taxi_fare` float(7) not null comment '打的费', `travel_allowance` float(7) not null comment '出差补助', `road_fee` float(7) not null comment '路费', `subsidy` float(7) not null comment '报销合计', primary key (`id`)) ENGINE=InnoDB AUTO_INCREMENT=100 DEFAULT CHARSET=utf8;SET FOREIGN_KEY_CHECKS = 1;
原因:
default 修饰符
可以使用 DEFAULT 修饰符为字段设定一个默认值。
如果一个字段中没有指定 DEFAULT 修饰符,MySQL 会依据这个字段是 NULL 还是 NOT NULL 自动设置默认值。
如果指定字段可以为 NULL,则 MySQL 为其设置默认值为 NULL。
如果是 NOT NULL 字段,MySQL 对于数值类型插入 0,字符串类型插入空字符串,
时间戳类型插入当前日期和时间,ENUM 类型插入枚举组的第一条。
如果创建表时要使用default修饰符,那不要忘记在default后面加个默认值。
例如:
CREATE TABLE `websites` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` char(20) NOT NULL DEFAULT '' COMMENT '站点名称', `url` varchar(255) NOT NULL DEFAULT '', `alexa` int(11) NOT NULL DEFAULT '0' COMMENT 'Alexa 排名', `country` char(10) NOT NULL DEFAULT '' COMMENT '国家', PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;
错误
名称
字段
类型
项目
人员
住宿费
地名
场馆
打的费
方法
时间
路费
还是
尝试
补助
成功
粗暴
百思不得其解
从无到有
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
ibmz15系列服务器
机构软件开发培训
湖州智能化网络技术来电咨询
软件开发属于什么费用
软件开发人工智能
视易峰云服务器授权到期怎么办
绿书签行动网络安全征文
企业数据库的内容
酷享互联网科技有限公司
安腾软件开发有限公司招聘
二级甲等医院服务器配置
在数据库查询中
服务器有硬盘吗
51单片机无线发送数据库
超高清数据库
软件开发视频教程第三讲
记忆弹钢琴软件开发
f2812的软件开发环境
无线网络安全需求
如何使用云服务器更安全
四川军工数显钟服务器虚拟主机
有关于网络安全语言
超越安全网络专用服务器
日了狗了服务器
通讯网络技术学院
数据库如何修改同一列数据
校园贷属于网络安全诈骗吗
数据库编号能不能修改
oracle数据库有什么用
软件开发有哪几个职业方向