public function get_TableIndex() { return TableIndex::from_mysql_id($this->TableIndex_id); }
public function get_TableIndexes() { return TableIndex::from_property(array("Table_id" => $this->id)); }
public function mysql_save_from_post($post) { $is_new = $this->id == 0; if ($is_new) { if (!Table::create_new_mysql_table($post['name'])) { return json_encode(array("result" => -6, "message" => mysql_error())); } } else { if ($this->name != $post['name']) { if (!$this->rename_mysql_table($post['name'])) { return json_encode(array("result" => -6, "message" => mysql_error())); } } } $lid = parent::mysql_save_from_post($post); $obj = Table::from_mysql_id($lid); if (array_key_exists("deleteData", $post)) { if ($post["deleteData"] == "*") { $sql = sprintf("DELETE FROM `%s`", mysql_real_escape_string($obj->name)); if (!mysql_query($sql)) { return json_encode(array("result" => -6, "message" => mysql_error())); } } else { $rows = json_decode($post["deleteData"]); foreach ($rows as $row) { $sql = sprintf("DELETE FROM `%s` WHERE id='%s'", mysql_real_escape_string($obj->name), mysql_real_escape_string($row)); if (!mysql_query($sql)) { return json_encode(array("result" => -6, "message" => mysql_error())); } } } } if (array_key_exists("deleteIndexes", $post)) { $indexes = json_decode($post["deleteIndexes"]); foreach ($indexes as $index) { $sql = sprintf("DROP INDEX `%s` ON `%s`", mysql_real_escape_string($index), mysql_real_escape_string($obj->name)); if (!mysql_query($sql)) { return json_encode(array("result" => -6, "message" => mysql_error())); } } } if (array_key_exists("deleteColumns", $post)) { $columns = json_decode($post["deleteColumns"]); foreach ($columns as $column) { $sql = sprintf("ALTER TABLE `%s` DROP COLUMN `%s`", mysql_real_escape_string($obj->name), mysql_real_escape_string($column)); if (!mysql_query($sql)) { return json_encode(array("result" => -6, "message" => mysql_error())); } } } if (array_key_exists("updateColumns", $post)) { $columns = json_decode($post["updateColumns"]); foreach ($columns as $column) { $col = TableColumn::from_ui($column); if ($column->id != "") { $sql = sprintf("ALTER TABLE `%s` CHANGE COLUMN `%s` `%s` %s", mysql_real_escape_string($obj->name), mysql_real_escape_string($column->id), mysql_real_escape_string($column->name), $col->get_definition()); if (!mysql_query($sql)) { return json_encode(array("result" => -6, "message" => mysql_error())); } } else { $sql = sprintf("ALTER TABLE `%s` ADD COLUMN `%s` %s", mysql_real_escape_string($obj->name), mysql_real_escape_string($column->name), $col->get_definition()); if (!mysql_query($sql)) { return json_encode(array("result" => -6, "message" => mysql_error())); } } } } if (array_key_exists("updateIndexes", $post)) { $indexes = json_decode($post["updateIndexes"]); foreach ($indexes as $index) { $ind = TableIndex::from_ui($index); if ($index->id != "") { $sql = sprintf("ALTER TABLE `%s` DROP INDEX `%s`", mysql_real_escape_string($obj->name), mysql_real_escape_string($index->id)); if (!mysql_query($sql)) { return json_encode(array("result" => -6, "message" => mysql_error())); } } $sql = sprintf("ALTER TABLE `%s` ADD %s", mysql_real_escape_string($obj->name), $ind->get_definition()); if (!mysql_query($sql)) { return json_encode(array("result" => -6, "message" => mysql_error())); } } } $columns = $this->get_columns(); if (array_key_exists("updateData", $post)) { $rows = json_decode($post["updateData"], true); foreach ($rows as $row) { $set = ""; foreach ($row as $k => $v) { if ($k == "id") { continue; } if ($set != "") { $set .= ","; } if ($v == "") { $nullable = true; foreach ($columns as $col) { if ($col->name == $k) { $nullable = $col->null; } } if (!$nullable) { $set .= "`" . mysql_real_escape_string($k) . "`=''"; } else { $set .= "`" . mysql_real_escape_string($k) . "`=NULL"; } } else { $set .= "`" . mysql_real_escape_string($k) . "`='" . mysql_real_escape_string($v) . "'"; } } if ($row["id"] != null) { $sql = sprintf("UPDATE `%s` SET %s WHERE `id`=%s", mysql_real_escape_string($obj->name), $set, mysql_real_escape_string($row["id"])); if (!mysql_query($sql)) { return json_encode(array("result" => -6, "message" => mysql_error())); } } else { $sql = sprintf("INSERT INTO `%s` SET %s", mysql_real_escape_string($obj->name), $set); if (!mysql_query($sql)) { return json_encode(array("result" => -6, "message" => mysql_error() . " " . $sql)); } } } } //hash if ($obj != null) { $xml_hash = $obj->calculate_xml_hash(); $obj->xml_hash = $xml_hash; $obj->mysql_save(); } return $lid; }
/** * Obtiene el detalle de indices de la tabla actual * @return Array */ public function checkTableIndexes() { $sql = "select i.index_name, ic.column_name, i.index_type, i.uniqueness, ic.column_position " . "from user_indexes i " . "inner join user_ind_columns ic on i.index_name = ic.index_name " . "where i.table_owner = upper(:v_owner) " . "and i.table_name = upper(:v_table) " . "order by i.index_name, ic.column_position"; $stmt = oci_parse($this->getConnection(), $sql); oci_bind_by_name($stmt, ":v_table", $this->objectName); oci_bind_by_name($stmt, ":v_owner", $this->owner); if (!@oci_execute($stmt)) { $e = oci_error(); $this->setMensaje("Error al obtener el detalle de los índices de la tabla o vista '{$this->objectName}' - {$e['message']}"); $this->setEstado(false); } while ($row = oci_fetch_array($stmt, OCI_ASSOC | OCI_RETURN_NULLS)) { $index = new TableIndex(); $index->setIndexName($row['INDEX_NAME']); $index->setColumnName($row['COLUMN_NAME']); $index->setIndexType($row['INDEX_TYPE']); $index->setUniqueness($row['UNIQUENESS']); $index->setColumnPosition($row['COLUMN_POSITION']); $this->aIndexes[] = $index; } return $this->aIndexes; }