一、問題起因
在前幾天從同事那裏拿來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', '登高賞菊');