sqlite2/3에 index 존재 유무 체크 및 생성 기능 추가 (cubrid에는 생성 코드만 추가. 유무 체크는 차후)

git-svn-id: http://xe-core.googlecode.com/svn/sandbox@2388 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
zero 2007-08-23 06:12:19 +00:00
parent 749873e6c1
commit e5db5d3f2b
3 changed files with 34 additions and 0 deletions

View file

@ -242,12 +242,17 @@
* $is_unique? unique : none
**/
function addIndex($table_name, $index_name, $target_columns, $is_unique = false) {
if(!is_array($target_columns)) $target_columns = array($target_columns);
$query = sprintf("create %s index %s%s_%s on %s%s (%s);", $is_unique?'unique':'', $this->prefix, $table_name, $index_name, $this->prefix, $table_name, "'".implode("','",$target_columns)."'");
$this->_query($query);
}
/**
* @brief 특정 테이블의 index 정보를 return
**/
function isIndexExists($table_name, $index_name) {
return false;
}
/**

View file

@ -233,12 +233,25 @@
* $is_unique? unique : none
**/
function addIndex($table_name, $index_name, $target_columns, $is_unique = false) {
if(!is_array($target_columns)) $target_columns = array($target_columns);
$key_name = sprintf('%s%s_%s', $this->prefix, $table_name, $index_name);
$query = sprintf("pragma table_info(%s%s)", $this->prefix, $table_name);
$query = sprintf('CREATE %s INDEX %s ON %s%s (%s)', $is_unique?'UNIQUE':'', $key_name, $this->prefix, $table_name, implode(',',$target_columns));
return $this->_query($query);
}
/**
* @brief 특정 테이블의 index 정보를 return
**/
function isIndexExists($table_name, $index_name) {
$key_name = sprintf('%s%s_%s', $this->prefix, $table_name, $index_name);
$query = sprintf("pragma index_info(%s)", $key_name);
$result = $this->_query($query);
$output = $this->_fetch($result);
if($output->name) return true;
return false;
}
/**

View file

@ -256,12 +256,28 @@
* $is_unique? unique : none
**/
function addIndex($table_name, $index_name, $target_columns, $is_unique = false) {
if(!is_array($target_columns)) $target_columns = array($target_columns);
$key_name = sprintf('%s%s_%s', $this->prefix, $table_name, $index_name);
$query = sprintf("pragma table_info(%s%s)", $this->prefix, $table_name);
$query = sprintf('CREATE %s INDEX %s ON %s%s (%s)', $is_unique?'UNIQUE':'', $key_name, $this->prefix, $table_name, implode(',',$target_columns));
$this->_prepare($query);
$this->_execute();
}
/**
* @brief 특정 테이블의 index 정보를 return
**/
function isIndexExists($table_name, $index_name) {
$key_name = sprintf('%s%s_%s', $this->prefix, $table_name, $index_name);
$query = sprintf("pragma index_info(%s)", $key_name);
$this->_prepare($query);
$output = $this->_execute();
if($output->name) return true;
return false;
}
/**