91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Mysql創建表過程中報1064錯誤

發布時間:2020-06-18 06:23:08 來源:網絡 閱讀:8385 作者:白羊IT 欄目:MySQL數據庫

我在自己搭建的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;
向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

呼和浩特市| 小金县| 万源市| 洪泽县| 隆安县| 鱼台县| 邵东县| 辽阳县| 会泽县| 博野县| 长泰县| 金沙县| 巴林左旗| 淮滨县| 类乌齐县| 剑阁县| 昌宁县| 云林县| 庆安县| 泰和县| 和龙市| 讷河市| 黄骅市| 沧源| 乌苏市| 广东省| 沂南县| 晋中市| 馆陶县| 稻城县| 德州市| 北票市| 万山特区| 安乡县| 石家庄市| 定日县| 盐城市| 丰顺县| 吉木萨尔县| 三亚市| 阿拉善右旗|