日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql创建数据库1064_Mysql创建表过程中报1064错误

發布時間:2025/3/20 数据库 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql创建数据库1064_Mysql创建表过程中报1064错误 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Mysql創建表過程中報1064錯誤

發布時間:2020-06-18 06:23:08

來源:51CTO

閱讀:7528

作者:白羊IT

我在自己搭建的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;

總結

以上是生活随笔為你收集整理的mysql创建数据库1064_Mysql创建表过程中报1064错误的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。