qq分分彩app|qq分分彩开奖记录官网

Redshift驅動

瀏覽:1372 最后更新:2017-06-28 18:30 分類:驅動
Redshift是亞馬遜提供的一種大數據存儲的DB,由pgsql改造,但不支持主鍵和自增,并且去掉了很多多余的功能。
在thinkphp中,如果直接用pgsql連接,是沒問題,但是TP有一個獲取表字段信息的過程,這個過程Pgsql.php中的 getFields方法,在Redshift會報錯,主要原因是,redshift不支持table_msg方法。

因此如果項目使用了Redshift數據庫,需要增加Redshift擴展<?php
namespace think\db\driver;

use think\db\Driver;

/**
 * Redshift數據庫驅動
 */
class Redshift extends Pgsql
{
    /**
     * 取得數據表的字段信息
     * @access public
     * @return array
     */
    public function getFields($tableName)
    {
        list($tableName) = explode(' ', $tableName);
        $result          = $this->query("select \"column\",\"type\",\"notnull\" from pg_table_def where schemaname = 'public' and tablename = '".$tableName."';");
        $info            = [];
        if ($result) {
            foreach ($result as $val) {
                $info[$val['column']] = [
                    'name'    => $val['column'],
                    'type'    => $val['type'],
                    'notnull' => $val['notnull'],
                    //'default' => $val['default'],
                    'primary' => '',
                    'autoinc' => '',
                ];
            }
        }
        return $info;
    }
}
評論( 相關
后面還有條評論,點擊查看>>
qq分分彩app