`

mysql和pgsql夸库查询插入

 
阅读更多
       当mysql中用到pgsql表的垮库操作时,首先可以使用ETL是可以解决的,今天学习了一种代码处理方式解决方案。

insert_sql = <<-sql
          insert into #{audience_attributes_table}
          select opxpid, "c", array_to_string(jx_array_sort(madlib.array_agg(pretargeting_id)), ',')
          from (
            select mt.opxpid as opxpid, ap.pretargeting_id as pretargeting_id
            from #{master_table} mt
            inner join
            #{map_audiences_pretargetings}
            on mt.hash_value = ap.audience_id
            where mt.hash_key = 'aids'
            and mt.hash_value in (#{aids.uniq.join(",")})
            group by 1,2
          ) m
          group by 1, 2;
        sql


#拼装查询结果。
def map_audiences_pretargetings
        pids = Pretargeting.find(:all, :select => :id, :conditions => ["start_date <= ? AND end_date >= ? AND approval_status = ?", Date.today + 3.days, Date.today - 3.days, true])
        adjustments = AudiencesPretargeting.find_all_by_pretargeting_id(pids.collect(&:id)).collect{|ad_pg| [ad_pg.pretargeting_id,ad_pg.audience_id]}

        adjustments_flattened = adjustments.map{ |adj| ",(#{adj[0]}, #{adj[1]})" }
        "(
             VALUES
             (0, 0)
             #{adjustments_flattened.join}
         ) AS ap (pretargeting_id, audience_id)"
end
0
0
分享到:
评论

相关推荐

    pgsql、mysql、SqlServer数据库驱动--jmter可用.rar

    它实现了Java Database Connectivity (JDBC) API,使得Java开发者可以编写代码来执行SQL查询,插入、更新和删除数据。在JMeter中,你可以使用这个驱动来测试PostgreSQL数据库的性能和稳定性。 2. MySQL数据库驱动:...

    MySQL创建存储过程批量插入10万条数据

    MySQL创建存储过程批量插入10万条数据 存储过程 1、首先防止主键冲突,我们清空表。 TRUNCATE table A_student; 2、编写存储过程 delimiter ‘$’; CREATE PROCEDURE batchInsert(in args int) BEGIN declare i int ...

    C#连接数据库MYSQL和POSTGRESQL.pdf

    可以通过`MySqlCommand`对象创建SQL语句并执行,如查询、插入、更新或删除数据。 6. **关闭连接**: 完成操作后记得关闭连接以释放资源: ```csharp connection.Close(); ``` ### C#连接PostgreSQL ...

    SOCI(C++连接MYSQL,ORACLE,PGSQL数据库VS2017编译好的库)

    SOCI(英文全称“Simple Oracle Connector for C++”)是一个强大的C++数据库访问库,最初设计用于与Oracle数据库交互,但随着时间的发展,它已经扩展到支持多种其他数据库系统,包括MySQL、PostgreSQL(PGSQL)和...

    SpringMVC+html+pgsql或mysql组合完整前后端公司主页

    标题中的"SpringMVC+html+pgsql或mysql组合完整前后端公司主页"表明这是一个使用SpringMVC框架构建的,结合HTML前端和pgsql或mysql数据库的公司网站项目。这个项目提供了完整的后端处理逻辑和前端展示界面,适用于...

    thinkphp+pgsql

    当开发者尝试将 ThinkPHP 框架与 PostgreSQL 结合使用时,由于两者之间的语法差异以及框架本身的限制,很可能会出现数据库连接失败或查询错误等问题。例如,ThinkPHP 默认的数据库驱动可能不支持 PostgreSQL 特有的...

    pgsql8.1手册pdf简体中文版

    - SQL是用于管理和查询关系型数据库的标准语言,本部分讲解了PostgreSQL支持的各种SQL命令和语法特点。 - **高级特性** - 包括事务处理、触发器、存储过程等功能,这些特性使得PostgreSQL能够满足复杂的应用需求。...

    shell脚本实现mysql从原表到历史表数据迁移

    1. **连接数据库**:使用`mysql`命令行工具或`mysql-client`库,脚本需要能安全地连接到MySQL服务器,这通常涉及提供用户名、密码、主机名和端口等信息。 2. **查询和筛选数据**:根据描述,脚本可能依赖于日期字段...

    在线MySQL管理工具MyWebSql v3.7 正式版.zip

    - 为某些Pgsql数据库生成的插入查询由于语法错误而无法执行; - 使用pgsql数据库修复数据表导入错误,使用表命名空间生成不正确的查询; - 查询数据的修复排序和分页问题(感谢彭晓的宝贵意见)。一般: - 在用户...

    php可用mysql,mssql,pg数据库操作类

    类的实现基于面向对象编程(OOP)原则,通过封装数据库操作方法,如连接、查询、插入、更新、删除等,使代码结构清晰,易于理解和维护。 3. **数据库连接管理**: - **MySQL**:使用`mysqli`或`PDO_MySQL`扩展...

    Linux下Apache、php3、MySQL整合方法

    - 执行`make`和`make install`来编译和安装MySQL - 运行`mysql_install_db`脚本创建数据库文件 - 启动MySQL服务,使用`safe_mysqld &`让MySQL在后台运行 2. **MySQL权限设置** - 通过MySQL的命令行客户端,以...

    06-MySQL压力测试工具sysbench1

    6. 数据库性能测试(OLTP 基准测试):测试数据库的读写能力,包括查询、插入、更新、删除等操作。 7. 查找范围内最大素数测试:测试算法的计算能力,包括查找最大素数的时间等。 8. 不同场景下的 IOPS 测试:测试...

    mybatis - 代码生成(postgresql\mysql)

    **Mapper**:MyBatis的Mapper接口,定义了数据库操作的方法,如查询、插入、更新和删除等。这些方法对应于Mapper.xml文件中的SQL语句。 **Mapper.xml**:XML配置文件,包含了具体的SQL语句和结果映射。Mapper接口中...

    MyWebSQL 3.7.zip

    - 为某些Pgsql数据库生成的插入查询由于语法错误而无法执行;- 使用pgsql数据库修复数据表导入错误,使用表命名空间生成不正确的查询;- 查询数据的修复排序和分页问题(感谢彭晓的宝贵意见)。一般:- 在用户请求后...

    mybatis 批量插入返回主键

    只提供代码,自己去下载相关jar包谢谢只提供代码,自己去下载相关jar包谢谢只提供代码,自己去下载相关jar包谢谢只提供代码,自己去下载相关jar包谢谢只提供代码,自己去下载相关jar包谢谢

    在MySQL concat里面使用多个单引号,三引号的问题

    MySQL与标准SQL略有不同,它允许使用单引号和双引号来包围字符串。在标准SQL中,字符串通常用单引号,而双引号用于标识数据库对象的别名(如列名或表名)。但在MySQL中,虽然双引号也能定义字符串,但推荐使用单...

    PostgreSQL实现批量插入、更新与合并操作的方法

    AWS 的 RDS 两大开源数据库就是 MySQL(Aurora 和 MariaDB 是它的变种) 和 PostgreSQL。 而 PostgreSQL 跳出了普通关系型数据库的类型约束,它灵活的支持 JSON, JSONB, XML, 数组等类型。比如说字段类型可以是各种...

    Web资料库pdo介紹

    如果成功安装,将能在phpinfo()输出的信息中看到"PDO support enabled"以及列出的PDO驱动,例如mysql、pgsql、sqlite、mssql、odbc、firebird等。 PDO能够连接多种数据库,包括但不限于MySQL、MSSQL、Oracle、...

    mysql-random-data-generator:这是最简单MySQL随机测试数据生成器工具。 加载过程并执行以自动检测列类型并加载数据

    7. **MySQL与PL/pgSQL支持**:虽然主要针对MySQL,标签中提到了PL/pgSQL,意味着此工具可能也适用于PostgreSQL数据库,提供了跨平台的灵活性。 8. **版本控制**:文件名中的"mysql-random-data-generator-master...

    django-postgresql 数据库驱动

    Django支持多种数据库,包括MySQL、SQLite、Oracle和PostgreSQL。要在Django项目中使用PostgreSQL,首先需要在`settings.py`文件中的`DATABASES`配置中指定数据库引擎为`'django.db.backends.postgresql'`或`'django...

Global site tag (gtag.js) - Google Analytics