MySQL如果不存在一个表则创建
生活随笔
收集整理的這篇文章主要介紹了
MySQL如果不存在一个表则创建
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、問題起因
在前幾天從同事那里拿來demo研究的時候,發現數據庫名,部分表都一樣,只是有的表沒有,這時如果需要把兩個人的數據庫和成一個數據庫,就需要處理判斷一張表不存在,如存在則不改動,若不存在,則執行創建。
二、處理思路
在同事那里拿到這個數據庫的轉存文件,然后去手動改動這個.sql轉存文件對一些自己不確定自己數據庫中是否存在的表,做如下示例處理
轉存sql文件時,每個表的導入都是如下創建方式,先判斷是否存在,若存在,則刪除這張表,重新創建,以下示例均為demo:
DROP TABLE IF EXISTS `student`;#判斷時候存在,若存在則執行刪除表操作 CREATE TABLE `student` (`s_id` varchar(40) NOT NULL,`s_name` varchar(255) default NULL,`s_age` varchar(255) default NULL,`s_msg` varchar(255) default NULL,PRIMARY KEY (`s_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;-- ---------------------------- -- Records of student -- ---------------------------- INSERT INTO `student` VALUES ('1', '早晨', '22', '電風扇'); INSERT INTO `student` VALUES ('2', '春節', '32', '發電設備v'); INSERT INTO `student` VALUES ('3', '端午節', '33', '地方'); INSERT INTO `student` VALUES ('4', '清明節', '44', 'dfs '); INSERT INTO `student` VALUES ('5', '圣誕節', '66', '的');在導入表時,不想刪除以前這張表中的數據,但希望允許轉存sql文件中的數據新增時,做如下修改
CREATE TABLE IF NOT EXISTS `student` (#判斷這張表是否存在,若存在,則跳過創建表操作,`s_id` varchar(40) NOT NULL, `s_name` varchar(255) default NULL, `s_age` varchar(255) default NULL, `s_msg` varchar(255) default NULL, PRIMARY KEY (`s_id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8; INSERT INTO `student` VALUES ('7', '重陽節', '33', '登高賞菊');三、建議
在執行新表創建,特別是批量創建時,一定要先對表的存在狀態做判斷,即使用if exists,不然一旦創建出錯,后面的語句將無法執行。
總結
以上是生活随笔為你收集整理的MySQL如果不存在一个表则创建的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 通过 kubeadm 安装 k8s 1.
- 下一篇: (超实用、简单明了)Mysql变量定义与