31 public static function mergeTables($toTable, $fromTable, $fldMap, $fldCondition)
34 $dbHelper = $dbConnection->getSqlHelper();
36 $toTable = $dbHelper->forSql(trim($toTable));
37 $fromTable = $dbHelper->forSql(trim($fromTable));
39 if(!mb_strlen($toTable) || !mb_strlen($fromTable) || !is_array($fldMap) || empty($fldMap) || empty($fldCondition))
44 if ($dbConnection->getType() ===
'pgsql')
49 foreach ($fldMap as $toFld => $fromFld)
51 $toFields[] = $dbHelper->forSql(trim($toFld));
52 $fromFields[] = $dbHelper->forSql(trim($fromFld));
54 foreach ($fldCondition as $left =>
$right)
56 $where[] = $toTable.
'.'.$dbHelper->forSql(trim($left)).
' = '.$fromTable.
'.'.$dbHelper->forSql(trim(
$right));
58 $sql =
'update '.$toTable.
' set ('.
59 implode(
', ', $toFields).
61 implode(
', ', $fromFields).
62 ' from '.$fromTable.
' where '.implode(
' and ', $where).
')';
66 $sql =
'update '.$toTable.
', '.$fromTable.
' set ';
69 foreach($fldMap as $toFld => $fromFld)
70 $fields[] = $toTable.
'.'.$dbHelper->forSql(trim($toFld)).
' = '.$fromTable.
'.'.$dbHelper->forSql(trim($fromFld));
75 foreach($fldCondition as $left =>
$right)
76 $where[] = $toTable.
'.'.$dbHelper->forSql(trim($left)).
' = '.$fromTable.
'.'.$dbHelper->forSql(trim(
$right));
78 $sql .=
' where '.implode(
' and ', $where);
81 $dbConnection->query($sql);
134 $dbHelper = $dbConnection->getSqlHelper();
136 $indexName = $dbHelper->forSql(trim($indexName));
137 $tableName = $dbHelper->forSql(trim($tableName));
139 if(!mb_strlen($indexName) || !mb_strlen($tableName))
142 if(!static::checkIndexNameExists($indexName, $tableName))
145 $dbConnection->query(
"alter table {$tableName} drop index {$indexName}");
168 $startIndex = intval($startIndex);
169 if($startIndex <= 0 || !mb_strlen($tableName))
173 $dbHelper = $dbConnection->getSqlHelper();
175 $tableName = $dbHelper->forSql(trim($tableName));
177 if ($dbConnection->getType() ===
'pgsql')
179 $dbConnection->query(
"alter sequence {$tableName}_id_seq RESTART WITH $startIndex");
183 $dbConnection->query(
'alter table '.$tableName.
' AUTO_INCREMENT = '.$startIndex);