Mysql使用DDL&DML

Mysql使用DDL&DML,第1张

Mysql使用DDL&DML

Mysql使用DDL

结论DDL

基本了解动态创建

情景一:字段动态情景二:字段静态

完全复制一个基本表(只结构)部分复制一个基本表(结构和数据) 判断表是否存在查询一个表所有字段 DML

查询

返回参数map形式(key字段,value字段值) 新增

入参map形式(key字段,value字段值) 修改

入参map形式(key字段,value字段值)

结论

mybatis开启事务,同时 *** 作dml,ddl,先执行dml后,在执行ddl,最后执行其他逻辑报错,dml,ddl没回滚(测试发现,一旦执行成功ddl,前面的dml就会提交事务)
mysql事务-事务中有ddl语句会自动提交事务

DDL 基本了解

平时我们查询时使用等这些标签,使用DDL使用update即可

动态创建表

需要注意的是平时我们传入参数时使用#{param},如果是数据库名字的话必须使用${tablename}

情景一:字段动态

 
        CREATE TABLE ${tableName}
        (
            `base_id`     varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci  NOT NULL,
            `account`     varchar(128) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
            `create_time` varchar(128) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
            `update_time` varchar(128) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
            `status`      tinyint(1) NOT NULL DEFAULT 0 COMMENT '逻辑删除:1已逻辑删除 / 0未逻辑删除',
    
    
        PRIMARY KEY (`base_id`) USING BTREE
        ) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
    
    
        
        
            ${colmnMsg}
        
        
    

好处:表与字段一起创建,表与字段同时成功同时失败。避免分别创建时,表创建成功后,列创建失败,但表和之前创建成功的列不会回滚。

情景二:字段静态 完全复制一个基本表(只结构)


   create table if not exists log_#{time} like log

部分复制一个基本表(结构和数据)

 
   create table ${newTableName} as select id,`name` from ${originalTableName}

判断表是否存在
 
        show
        columns from
        ${tableName};
 
DML 查询 返回参数map形式(key字段,value字段值)



 
新增 入参map形式(key字段,value字段值)



        insert into ${tableName}
        
            ${key}
        
        values
        
            #{mapParams[${key}]}
        
    
修改 入参map形式(key字段,value字段值)

 
        update ${tableName}
        set
        
            ${key} = #{mapParams[${key}]}
        
        where base_id = #{baseId}
    

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5713057.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存