我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Mysql创建表过程中报1064错误

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Mysql创建表过程中报1064错误

我在自己搭建的mysql服务中,在使用create table创建表时报了1064错误,尝试网上找了各种解决方法,最后还是被自己试着解决了。解决的有的稀里糊涂的,毕竟我自己对数据库知识还没个很清晰的认知。废话不多说了,下面看我的解决历程吧。

自己创建表的初衷:想要从无到有的尝试

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 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 utf8
set foreign_key_checks=0
drop 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=0
drop 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;

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Mysql创建表过程中报1064错误

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

在 MySQL 中创建数据库时修复错误 1064 (42000)?

错误 1064 (42000) 主要发生在语法设置不正确时,即应用反引号符号时出错,或者在没有反引号符号的情况下创建数据库时也可能会产生错误,例如,如果您在名称中使用连字符,Demo-Table 将导致 ERROR 1064 (42000)
2023-10-22

如何解决MySQL报错:无法创建表,错误编号:121

MySQL报错:无法创建表,错误编号:121通常是由于表定义中的某些约束条件冲突导致的。要解决这个问题,可以按照以下步骤进行:1. 检查表定义中的约束条件是否正确,并确保它们没有冲突。可以检查主键、唯一键、外键和默认值等约束条件。2. 如果
2023-10-10

如何解决MySQL报错:无法创建表,错误编号:150

MySQL报错:无法创建表,错误编号:150通常是由于外键约束导致的。解决此问题,可以按照以下步骤进行操作:1. 检查表之间的关系:确定是否在创建表时使用了外键约束。2. 确定外键约束的名称:使用SHOW CREATE TABLE语句查看表
2023-10-18

如何解决MySQL报错:无法创建表,错误编号:139

MySQL报错:无法创建表,错误编号:139 是由于创建表时的语法错误导致的。解决方法如下:1. 检查创建表的语法是否正确,包括表名、列名、数据类型等是否符合MySQL的语法规范。可以参考MySQL的官方文档或其他相关的教程。2. 检查是否
2023-10-18

mysql表格创建报错怎么解决

在 MySQL 中,创建表格时可能会出现各种报错。以下是一些常见的创建表格报错及解决方法:语法错误:在创建表格时可能会出现语法错误,通常是因为表格定义的字段类型、属性或约束不正确。检查表格定义语句,确认语法错误并进行修正。表格已存在:如果尝
mysql表格创建报错怎么解决
2024-05-15

MySQL创建表格报错怎么解决

在MySQL创建表格时报错通常是由于语法错误或者数据类型不匹配引起的。以下是一些常见的解决方法:检查语法错误:请仔细检查CREATE TABLE语句中的每个关键字和参数,确保没有拼写错误或者缺少分号等语法规则。检查数据类型:确认表格中的每个
MySQL创建表格报错怎么解决
2024-05-13

mysql创建临时表报错怎么解决

当MySQL创建临时表时报错,可能存在以下几种解决方案:检查SQL语句是否正确:确保CREATE TEMPORARY TABLE语句的语法正确,包括表名、字段名、数据类型等是否正确。检查权限:确保当前用户拥有创建临时表的权限。如果没有权限,
mysql创建临时表报错怎么解决
2024-04-09

Mysql表创建外键报错解决方案

数据库表A:CREATE TABLE task_desc_tab (id INT(11) PRIMARY KEY NOT NULL COMMENT '自增主键' AUTO_INCREMENT,taskname
2022-05-23

MySQL中如何创建动态报表

在MySQL中创建动态报表,一种常见的方法是通过存储过程和动态SQL语句来实现。以下是一个简单的示例:创建存储过程:DELIMITER //CREATE PROCEDURE create_dynamic_report()BEGINDECL
MySQL中如何创建动态报表
2024-04-30

mysql创建数据库表报错了怎么办

mysql 创建数据库表时遇到报错,可能是以下原因造成的:1. 语法错误;2. 表名或列名已存在;3. 数据类型不匹配;4. 缺少权限;5. 磁盘空间不足;6. 其他错误。解决方法包括:检查语法错误、验证表名和列名、检查数据类型、授予权限、
mysql创建数据库表报错了怎么办
2024-04-14

Can't create table 'table_name' (errno: 150) - 如何解决MySQL报错:无法创建表,错误编号:150

在使用MySQL数据库时,有时会遇到创建表的问题。其中一个常见的问题是无法创建表,错误编号为150。这个错误通常表示在创建表时出现了外键约束错误。本文将介绍如何解决这个问题,并提供具体的代码示例。在MySQL中,外键用于建立表与表之间的关系
2023-10-21

Can't create table 'table_name' (errno: 121) - 如何解决MySQL报错:无法创建表,错误编号:121

在使用MySQL数据库时,有时会遇到错误编号121的问题,导致无法创建表。这个问题通常会导致开发人员困扰,因为没有具体的错误信息,很难找到解决方案。本文将介绍如何解决这个问题,并提供具体的代码示例。首先,让我们了解一下这个错误的原因。错误编
2023-10-21

Can't create table 'table_name' (errno: 139) - 如何解决MySQL报错:无法创建表,错误编号:139

在进行数据库开发时,我们经常会遇到创建表的需求。然而,有时候在MySQL中创建表时可能会遇到错误,其中之一就是错误编号139。本文将介绍如何解决这个问题,并提供具体的代码示例。首先,让我们了解一下这个错误的含义。当MySQL无法创建表时,它
2023-10-21

如何解决MySQL报错:无法创建表,表已存在

当MySQL报错提示“无法创建表,表已存在”时,说明要创建的表名在数据库中已经存在了。解决这个问题有两种方法:1. 更改表名:可以尝试更改要创建的表的名称,确保新表的名称在数据库中是唯一的。例如,如果要创建的表名为"mytable",可以更
2023-10-10

mysql创建一个表完整过程怎么写的

创建 mysql 表的步骤如下:打开 mysql 命令行客户端并选择数据库。编写 create table 语句,指定表名、列名、数据类型、主键等信息。执行 create table 语句以创建表。使用 show tables 语句验证表是
mysql创建一个表完整过程怎么写的
2024-04-22

编程热搜

目录