一、问题起因

在前几天从同事那里拿来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如果不存在一个表则创建相关推荐

  1. mysql 不在另一个表中_MySQL选择查询从表中选择不在另一个表中的行?

    对于我们的示例,我们将创建两个表并应用"自然左联接"以从第二个表中不存在的表中获取行. 创建第一个表.mysql> create table FirstTableDemo - ...

  2. mysql 空位补0_MySQL-13(表的创建、数值类型整型、float/decimal、ZEROFILL、BIT(M))

    #    1. 表的创建 基本语法: CREATE TABLE table_name( column1 datatype, column2 datatype, column3 datatype )ch ...

  3. spool命令、创建一个表,创建并且copy表,查看别的用户下的表,rowid行地址 索引的时候使用,表的增删改查,删除表,oracle的回收站

      1.spool 命令 spool "D:\test.txt" spool off SQL> host cls 2.创建一个表 SQL> --条件(1):有创 ...

  4. MySQL 数据库怎样把一个表的数据插入到另一个表

    web开发中,我们经常需要将一个表的数据插入到另外一个表,有时还需要指定导入字段,设置只需要导入目标表中不存在的记录,虽然这些都可以在程序中拆分成简单sql来实现,但是用一个sql的话,会节省大量代码 ...

  5. spool命令、创建一个表,创建而且copy表,查看别的用户下的表,rowid行地址 索引的时候使用,表的增删改查,删除表,oracle的回收站...

      1.spool命令 spool "D:\test.txt" spool off SQL> host cls 2.创建一个表 SQL> --条件(1):有创建 ...

  6. mysql查询结果作为一个表_例题:数据库查询结果作为一个表

    假如有两个表 表1:product (productID,productName) 表2:consume (productID,nums)  //nums表示对应的产品的销量 问题:列出每个产品ID, ...

  7. 【MYSQL命令】查看一个表的建表语句

    show create table table_name; 转载于:https://www.cnblogs.com/xphdbky/p/7569927.html

  8. MySQL CASE WHEN 根据一个表的字段值不同关联查询两张不同的表【子查询】

    2019独角兽企业重金招聘Python工程师标准>>> SELECT CASE WHEN t.name_a != ''THEN t.name_aWHEN t.name_b != '' ...

  9. 依照表结构创建student表设置sno为主键_7.MySQL库表的创建与修改

    自己的MySQL阅读笔记,持续更新,直到看书结束. 数据库技术可以有效帮助一个组织或者企业科学.有效的管理数据,也是现在很多企业招聘数据分析师的必备要求之一. 大家如果看过MySQL的书,也可以看我的 ...

最新文章

  1. matlab 全局变量
  2. oracle11gRAC之log日志体系
  3. 文巾解题 面试题 17.10. 主要元素
  4. android 数据存储路径
  5. java mysql报表T加1_MySQL报错: java.sql.SQLException: Column count doesn't match value count at row 1...
  6. Java 平台有哪几个版本?
  7. 不定长内存池之apr_pool
  8. 重读读书笔记的重要性
  9. 塔罗牌第五张是什么牌_埃及塔罗牌之第五张牌的细节、释义与改动
  10. 最流行的 IDE 之争:Eclipse 反超 Visual Studio 成第一
  11. 拉拉交友 http://www.les-sky.net 代码备份: 开发自己的可视化编辑器
  12. STM32启动模式及API(转)
  13. C++_二维数组的动态申请内存3种方法
  14. android 锁屏显示消息格式,通知!在锁屏上显示Android通知 | MOS86
  15. 【MMD tools for bleander,Bleander的插件】
  16. 手机软件测试sim卡流程,传统SIM卡:该说再见了
  17. CSDN资源共享规范
  18. Java 单点登录安全性如何保障?
  19. 操作系统——大题——空闲分区表问题
  20. 【常垒·投资】芯率智能完成A轮融资

热门文章

  1. OpenCV warpAffine做图像旋转变换90度黑边问题
  2. Ubuntu 18.04 16.04 设置输入法切换方法 中文输入法
  3. C++实现生产者消费者队列
  4. 数据库系统原理-课程目标
  5. xtu 1397 Patchouli的金字塔
  6. 2016OSC源创会年终盛典-综合技术专场-George Neville-Neil
  7. 第五人格共研服务器维护中,第五人格共研服更新公告 角色调整内容详解
  8. html5游戏 陈书艺,陈书艺:推动游戏前行 开启HTML5游戏之门
  9. Bonobo Git Server 后台服务安装 详细教程
  10. 为什么会学习感觉痛苦