暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

华为GaussDB T 执行SQL语句

墨天轮 2019-10-12
973

执行SQL语句

  • 通过connection直接执行sql语句,sql执行完成后会自动提交事务。
    //执行sql语句,创建表 if _, err := db.Exec("CREATE TABLE " + tbl_name + " (name_spainish VARCHAR2(100) not null, name_chinesses VARCHAR2(100), name_russian VARCHAR2(100))"); err != nil { return err } //执行sql,插入数据 if _, err = db.Exec("INSERT INTO " + tbl_name + " (name_spainish, name_chinesses, name_russian) " + " VALUES (" + ttst_strings + ")"")"); err != nil { return err }
  • 通过绑定参数执行sql,sql执行完成后会自动提交事务。
    _,err = db.Exec("create table tst_batchbind (id real, name varchar(20))") if err != nil { return err } // 创建statement stmt, err = db.Prepare("insert into tst_batchbind values (:1,:2)") if err != nil { return err } // 批量绑定参数执行sql var intput = [5][2]driver.Value {{1.2,"Golus"}, {2.3, "Bonus"}, {3.5, "Franj"}, {4.6, "Wliian"}, {5.7, "Dous"}} for _,value := range intput { _, err = stmt.Exec(value[0], value[1]) if err != nil { return err } }
  • 通过事务块执行sql,通过事务块整体结束后整体提交事务。
    //创建事务块 tx, err := db.Begin() if err != nil { return err } //执行sql if _,err := db.Exec("create table tst_autocommit (id bigint, name char(30))"); err != nil { return err } if _,err := tx.Exec("insert into tst_autocommit values (3, 'Golus')"); err != nil { return err } if _,err := tx.Exec("insert into tst_autocommit values (4, 'Hellen')"); err != nil { return err } //提交事务 if err := tx.Commit(); err != nil { return err }
  • 通过事务块执sql,通过事务块进行回滚。
    //创建事务块 tx, err := db.Begin() if err != nil { return err } //执行sql if _,err := tx.Exec("insert into tst_autocommit values (5, 'WELLROM')"); err != nil { return err } if _,err := tx.Exec("insert into tst_autocommit values (6, 'Bobi')"); err != nil { return err } //回滚事务 if err := tx.Rollback(); err != nil { return err }
  • 多条sql拼接成一条长sql执行,执行时需遵循以下约束:
    • 多条sql之间应以分号进行分割。
    • sql中不能出现绑定参数。
    • sql中不支持PL类型语句,如存储过程、匿名块等。
    • 不支持SELECT语句,如果存在SELECT语句,拼接成的长sql可正常执行但不会有返回值。
    if _,err := db.Exec("create table tstMultisql(f1 int)"); err != nil { return err } if _,err :=db.Exec("insert into tstMultisql values(1);insert into tstMultisql values(2);insert tstMultisql values(4);select * from tstMultiSql;update tstMultisql set f1=3 where f1=2;delete from tstMultisql where f1=4;"); err != nil { return err }
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论