ITPub博客

首页 > 数据库 > 数据库开发技术 > openGauss学习笔记-32 openGauss 高级数据管理-批处理模式

openGauss学习笔记-32 openGauss 高级数据管理-批处理模式

原创 数据库开发技术 作者:shuchaoyang 时间:2023-05-02 07:00:00 0 删除 编辑

openGauss学习笔记-32 openGauss 高级数据管理-批处理模式32.1 语法格式32.2 参数说明32.3 示例

openGauss学习笔记-32 openGauss 高级数据管理-批处理模式

openGauss支持从文本文件执行SQL语句。openGauss提供了gsql工具实现SQL语句的批量处理。

以下场景建议使用批处理:

  • 如果您重复运行查询(例如,每天或每周),将其设为脚本可以让您避免每次进行重复输入。

  • 您可以通过复制和编辑脚本文件从现有的相似查询生成新查询。

  • 对于多行语句或多语句序列,如果中间出现错误,不必重新键入所有内,只需编辑脚本以更正错误,然后再次执行它。

  • 您可以将脚本分发给其他人,以便他们也可以运行这些语句。

  • 某些情况不允许交互式使用时,您必须使用批处理模式。

32.1 语法格式

gsql -d dbname -p port -f filename

32.2 参数说明

  • dbname

    指定想要连接的数据库名称。

  • port

    指定数据库服务器的端口号。

  • -f filename

    使用文件作为命令源而不是交互式输入。该参数指定读取文本文件的路径以及名称。

32.3 示例

  1. 创建本地sql文本文件。文件内容如下:

    CREATE TABLE customer
    (
      c_customer_sk             integer,
      c_customer_id             char(5),
      c_first_name              char(6),
      c_last_name               char(8),
      Amount                    integer
    );

    INSERT INTO customer(c_customer_sk, c_customer_id, c_first_name,Amount) VALUES (3769, 'hello', 'Grace', 1000);
    INSERT INTO customer (c_customer_sk, c_first_name) VALUES (3769, 'Grace');
    INSERT INTO customer (c_customer_sk, c_customer_id, c_first_name) VALUES (3769, 'hello', DEFAULT);
    INSERT INTO customer (c_customer_sk, c_customer_id, c_first_name,Amount) VALUES
       (6885, 'maps', 'Joes',2200),
       (4321, 'tpcds', 'Lily',3000),
       (9527, 'world', 'James',5000);
  2. 使用如下命令执行sql.txt中的SQL语句。

    gsql -d postgres -p 21013 -f /home/user/sql.txt

    结果如下。

    CREATE TABLE
    INSERT 0 1
    INSERT 0 1
    INSERT 0 1
    INSERT 0 3


👍 点赞,你的认可是我创作的动力!

⭐️ 收藏,你的青睐是我努力的方向!


有什么吐槽或反馈意见,直接告诉我!

温馨提示:如出现二维码失效也可直接添加微信号:ysc13803862469。


原文作者:超哥的IT私房菜;如有侵权,请联系管理员删除。

请登录后发表评论 登录
全部评论
专注于IT系统集成、运维、架构二十年的IT职场老兵,拥有CCNA、OCA、OCP、PGCA、PGCE认证证书,公众号:超哥的IT私房菜,知识星球:超哥的IT私房菜,目前是多家IT厂商的咨询顾问。

注册时间:2021-08-27

  • 博文量
    552
  • 访问量
    303629