Merged in bugfix/HOR-3580-A (pull request #5828)

HOR-3580

Approved-by: Julio Cesar Laura Avendaño <contact@julio-laura.com>
This commit is contained in:
Paula Quispe
2017-08-01 18:03:36 +00:00
committed by Julio Cesar Laura Avendaño
6 changed files with 402 additions and 90 deletions

View File

@@ -2600,34 +2600,91 @@ class workspaceTools
CLI::logging("> Completed table LIST_PARTICIPATED_LAST\n");
}
/**
* This function overwrite the table LIST_PAUSED
* Get the principal information in the tables appDelay, appDelegation
* For the labels we use the tables user, process, task and application
* @return void
*/
public function regenerateListPaused(){
$delaycriteria = new Criteria("workflow");
$delaycriteria->addSelectColumn(AppDelayPeer::APP_UID);
$delaycriteria->addSelectColumn(AppDelayPeer::PRO_UID);
$delaycriteria->addSelectColumn(AppDelayPeer::APP_DEL_INDEX);
$delaycriteria->addSelectColumn(AppDelayPeer::APP_DISABLE_ACTION_DATE);
$delaycriteria->addSelectColumn(AppCacheViewPeer::APP_NUMBER);
$delaycriteria->addSelectColumn(AppCacheViewPeer::USR_UID);
$delaycriteria->addSelectColumn(AppCacheViewPeer::APP_STATUS);
$delaycriteria->addSelectColumn(AppCacheViewPeer::TAS_UID);
$delaycriteria->addSelectColumn(AppCacheViewPeer::DEL_DELEGATE_DATE);
$delaycriteria->addJoin( AppCacheViewPeer::APP_UID, AppDelayPeer::APP_UID . ' AND ' . AppCacheViewPeer::DEL_INDEX . ' = ' . AppDelayPeer::APP_DEL_INDEX, Criteria::INNER_JOIN );
$delaycriteria->add(AppDelayPeer::APP_DISABLE_ACTION_USER, "0", CRITERIA::EQUAL);
$delaycriteria->add(AppDelayPeer::APP_TYPE, "PAUSE", CRITERIA::EQUAL);
$rsCriteria = AppDelayPeer::doSelectRS($delaycriteria);
$rsCriteria->setFetchmode(ResultSet::FETCHMODE_ASSOC);
while ($rsCriteria->next()) {
$row = $rsCriteria->getRow();
$data = $row;
$data["DEL_INDEX"] = $row["APP_DEL_INDEX"];
$data["APP_RESTART_DATE"] = $row["APP_DISABLE_ACTION_DATE"];
$listPaused = new ListPaused();
$listPaused ->remove($row["APP_UID"],$row["APP_DEL_INDEX"],$data);
$listPaused->setDeleted(false);
$listPaused->create($data);
}
$this->initPropel(true);
$query = 'INSERT INTO '.$this->dbName.'.LIST_PAUSED
(
APP_UID,
DEL_INDEX,
USR_UID,
TAS_UID,
PRO_UID,
APP_NUMBER,
APP_TITLE,
APP_PRO_TITLE,
APP_TAS_TITLE,
APP_PAUSED_DATE,
APP_RESTART_DATE,
DEL_PREVIOUS_USR_UID,
DEL_PREVIOUS_USR_USERNAME,
DEL_PREVIOUS_USR_FIRSTNAME,
DEL_PREVIOUS_USR_LASTNAME,
DEL_CURRENT_USR_USERNAME,
DEL_CURRENT_USR_FIRSTNAME,
DEL_CURRENT_USR_LASTNAME,
DEL_DELEGATE_DATE,
DEL_INIT_DATE,
DEL_DUE_DATE,
DEL_PRIORITY,
PRO_ID,
USR_ID,
TAS_ID
)
SELECT
AD1.APP_UID,
AD1.DEL_INDEX,
AD1.USR_UID,
AD1.TAS_UID,
AD1.PRO_UID,
AD1.APP_NUMBER,
APPLICATION.APP_TITLE,
PROCESS.PRO_TITLE,
TASK.TAS_TITLE,
APP_DELAY.APP_ENABLE_ACTION_DATE AS APP_PAUSED_DATE ,
APP_DELAY.APP_DISABLE_ACTION_DATE AS APP_RESTART_DATE,
AD2.USR_UID AS DEL_PREVIOUS_USR_UID,
PREVIOUS.USR_USERNAME AS DEL_PREVIOUS_USR_USERNAME,
PREVIOUS.USR_FIRSTNAME AS DEL_CURRENT_USR_FIRSTNAME,
PREVIOUS.USR_LASTNAME AS DEL_PREVIOUS_USR_LASTNAME,
USERS.USR_USERNAME AS DEL_CURRENT_USR_USERNAME,
USERS.USR_FIRSTNAME AS DEL_CURRENT_USR_FIRSTNAME,
USERS.USR_LASTNAME AS DEL_CURRENT_USR_LASTNAME,
AD1.DEL_DELEGATE_DATE AS DEL_DELEGATE_DATE,
AD1.DEL_INIT_DATE AS DEL_INIT_DATE,
AD1.DEL_TASK_DUE_DATE AS DEL_DUE_DATE,
AD1.DEL_PRIORITY AS DEL_PRIORITY,
PROCESS.PRO_ID,
USERS.USR_ID,
TASK.TAS_ID
FROM
'.$this->dbName.'.APP_DELAY
LEFT JOIN
'.$this->dbName.'.APP_DELEGATION AS AD1 ON (APP_DELAY.APP_NUMBER = AD1.APP_NUMBER AND AD1.DEL_INDEX = APP_DELAY.APP_DEL_INDEX)
LEFT JOIN
'.$this->dbName.'.APP_DELEGATION AS AD2 ON (AD1.APP_NUMBER = AD2.APP_NUMBER AND AD1.DEL_PREVIOUS = AD2.DEL_INDEX)
LEFT JOIN
'.$this->dbName.'.USERS ON (APP_DELAY.APP_DELEGATION_USER_ID = USERS.USR_ID)
LEFT JOIN
'.$this->dbName.'.USERS PREVIOUS ON (AD2.USR_ID = PREVIOUS.USR_ID)
LEFT JOIN
'.$this->dbName.'.APPLICATION ON (AD1.APP_NUMBER = APPLICATION.APP_NUMBER)
LEFT JOIN
'.$this->dbName.'.PROCESS ON (AD1.PRO_ID = PROCESS.PRO_ID)
LEFT JOIN
'.$this->dbName.'.TASK ON (AD1.TAS_ID = TASK.TAS_ID)
WHERE
APP_DELAY.APP_DISABLE_ACTION_USER = "0" AND
APP_DELAY.APP_TYPE = "PAUSE"
';
$con = Propel::getConnection("workflow");
$stmt = $con->createStatement();
$stmt->executeQuery($query);
CLI::logging("> Completed table LIST_PAUSED\n");
}
@@ -3668,6 +3725,48 @@ class workspaceTools
APP_STATUS_ID = 0");
$con->commit();
// Populating APP_DELAY.USR_ID
CLI::logging("-> Populating APP_DELAY.USR_ID \n");
$con->begin();
$stmt = $con->createStatement();
$rs = $stmt->executeQuery("UPDATE APP_DELAY AS AD
INNER JOIN (
SELECT USERS.USR_UID, USERS.USR_ID
FROM USERS
) AS USR
ON (AD.APP_DELEGATION_USER = USR.USR_UID)
SET AD.APP_DELEGATION_USER_ID = USR.USR_ID
WHERE AD.APP_DELEGATION_USER_ID = 0");
$con->commit();
// Populating APP_DELAY.PRO_ID
CLI::logging("-> Populating APP_DELAY.PRO_ID \n");
$con->begin();
$stmt = $con->createStatement();
$rs = $stmt->executeQuery("UPDATE APP_DELAY AS AD
INNER JOIN (
SELECT PROCESS.PRO_UID, PROCESS.PRO_ID
FROM PROCESS
) AS PRO
ON (AD.PRO_UID = PRO.PRO_UID)
SET AD.PRO_ID = PRO.PRO_ID
WHERE AD.PRO_ID = 0");
$con->commit();
// Populating APP_DELAY.APP_NUMBER
CLI::logging("-> Populating APP_DELAY.APP_NUMBER \n");
$con->begin();
$stmt = $con->createStatement();
$rs = $stmt->executeQuery("UPDATE APP_DELAY AS AD
INNER JOIN (
SELECT APPLICATION.APP_UID, APPLICATION.APP_NUMBER
FROM APPLICATION
) AS APP
ON (AD.APP_UID = APP.APP_UID)
SET AD.APP_NUMBER = APP.APP_NUMBER
WHERE AD.APP_NUMBER = 0");
$con->commit();
CLI::logging("-> Migrating And Populating Indexing for avoiding the use of table APP_CACHE_VIEW Done \n");
// Populating PRO_ID, USR_ID

View File

@@ -71,6 +71,8 @@ class AppDelayMapBuilder
$tMap->addColumn('APP_UID', 'AppUid', 'string', CreoleTypes::VARCHAR, true, 32);
$tMap->addColumn('APP_NUMBER', 'AppNumber', 'int', CreoleTypes::INTEGER, false, null);
$tMap->addColumn('APP_THREAD_INDEX', 'AppThreadIndex', 'int', CreoleTypes::INTEGER, true, null);
$tMap->addColumn('APP_DEL_INDEX', 'AppDelIndex', 'int', CreoleTypes::INTEGER, true, null);
@@ -93,6 +95,10 @@ class AppDelayMapBuilder
$tMap->addColumn('APP_AUTOMATIC_DISABLED_DATE', 'AppAutomaticDisabledDate', 'int', CreoleTypes::TIMESTAMP, false, null);
$tMap->addColumn('APP_DELEGATION_USER_ID', 'AppDelegationUserId', 'int', CreoleTypes::INTEGER, false, null);
$tMap->addColumn('PRO_ID', 'ProId', 'int', CreoleTypes::INTEGER, false, null);
} // doBuild()
} // AppDelayMapBuilder

File diff suppressed because it is too large Load Diff

View File

@@ -25,7 +25,7 @@ abstract class BaseAppDelayPeer
const CLASS_DEFAULT = 'classes.model.AppDelay';
/** The total number of columns. */
const NUM_COLUMNS = 14;
const NUM_COLUMNS = 17;
/** The number of lazy-loaded columns. */
const NUM_LAZY_LOAD_COLUMNS = 0;
@@ -40,6 +40,9 @@ abstract class BaseAppDelayPeer
/** the column name for the APP_UID field */
const APP_UID = 'APP_DELAY.APP_UID';
/** the column name for the APP_NUMBER field */
const APP_NUMBER = 'APP_DELAY.APP_NUMBER';
/** the column name for the APP_THREAD_INDEX field */
const APP_THREAD_INDEX = 'APP_DELAY.APP_THREAD_INDEX';
@@ -73,6 +76,12 @@ abstract class BaseAppDelayPeer
/** the column name for the APP_AUTOMATIC_DISABLED_DATE field */
const APP_AUTOMATIC_DISABLED_DATE = 'APP_DELAY.APP_AUTOMATIC_DISABLED_DATE';
/** the column name for the APP_DELEGATION_USER_ID field */
const APP_DELEGATION_USER_ID = 'APP_DELAY.APP_DELEGATION_USER_ID';
/** the column name for the PRO_ID field */
const PRO_ID = 'APP_DELAY.PRO_ID';
/** The PHP to DB Name Mapping */
private static $phpNameMap = null;
@@ -84,10 +93,10 @@ abstract class BaseAppDelayPeer
* e.g. self::$fieldNames[self::TYPE_PHPNAME][0] = 'Id'
*/
private static $fieldNames = array (
BasePeer::TYPE_PHPNAME => array ('AppDelayUid', 'ProUid', 'AppUid', 'AppThreadIndex', 'AppDelIndex', 'AppType', 'AppStatus', 'AppNextTask', 'AppDelegationUser', 'AppEnableActionUser', 'AppEnableActionDate', 'AppDisableActionUser', 'AppDisableActionDate', 'AppAutomaticDisabledDate', ),
BasePeer::TYPE_COLNAME => array (AppDelayPeer::APP_DELAY_UID, AppDelayPeer::PRO_UID, AppDelayPeer::APP_UID, AppDelayPeer::APP_THREAD_INDEX, AppDelayPeer::APP_DEL_INDEX, AppDelayPeer::APP_TYPE, AppDelayPeer::APP_STATUS, AppDelayPeer::APP_NEXT_TASK, AppDelayPeer::APP_DELEGATION_USER, AppDelayPeer::APP_ENABLE_ACTION_USER, AppDelayPeer::APP_ENABLE_ACTION_DATE, AppDelayPeer::APP_DISABLE_ACTION_USER, AppDelayPeer::APP_DISABLE_ACTION_DATE, AppDelayPeer::APP_AUTOMATIC_DISABLED_DATE, ),
BasePeer::TYPE_FIELDNAME => array ('APP_DELAY_UID', 'PRO_UID', 'APP_UID', 'APP_THREAD_INDEX', 'APP_DEL_INDEX', 'APP_TYPE', 'APP_STATUS', 'APP_NEXT_TASK', 'APP_DELEGATION_USER', 'APP_ENABLE_ACTION_USER', 'APP_ENABLE_ACTION_DATE', 'APP_DISABLE_ACTION_USER', 'APP_DISABLE_ACTION_DATE', 'APP_AUTOMATIC_DISABLED_DATE', ),
BasePeer::TYPE_NUM => array (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, )
BasePeer::TYPE_PHPNAME => array ('AppDelayUid', 'ProUid', 'AppUid', 'AppNumber', 'AppThreadIndex', 'AppDelIndex', 'AppType', 'AppStatus', 'AppNextTask', 'AppDelegationUser', 'AppEnableActionUser', 'AppEnableActionDate', 'AppDisableActionUser', 'AppDisableActionDate', 'AppAutomaticDisabledDate', 'AppDelegationUserId', 'ProId', ),
BasePeer::TYPE_COLNAME => array (AppDelayPeer::APP_DELAY_UID, AppDelayPeer::PRO_UID, AppDelayPeer::APP_UID, AppDelayPeer::APP_NUMBER, AppDelayPeer::APP_THREAD_INDEX, AppDelayPeer::APP_DEL_INDEX, AppDelayPeer::APP_TYPE, AppDelayPeer::APP_STATUS, AppDelayPeer::APP_NEXT_TASK, AppDelayPeer::APP_DELEGATION_USER, AppDelayPeer::APP_ENABLE_ACTION_USER, AppDelayPeer::APP_ENABLE_ACTION_DATE, AppDelayPeer::APP_DISABLE_ACTION_USER, AppDelayPeer::APP_DISABLE_ACTION_DATE, AppDelayPeer::APP_AUTOMATIC_DISABLED_DATE, AppDelayPeer::APP_DELEGATION_USER_ID, AppDelayPeer::PRO_ID, ),
BasePeer::TYPE_FIELDNAME => array ('APP_DELAY_UID', 'PRO_UID', 'APP_UID', 'APP_NUMBER', 'APP_THREAD_INDEX', 'APP_DEL_INDEX', 'APP_TYPE', 'APP_STATUS', 'APP_NEXT_TASK', 'APP_DELEGATION_USER', 'APP_ENABLE_ACTION_USER', 'APP_ENABLE_ACTION_DATE', 'APP_DISABLE_ACTION_USER', 'APP_DISABLE_ACTION_DATE', 'APP_AUTOMATIC_DISABLED_DATE', 'APP_DELEGATION_USER_ID', 'PRO_ID', ),
BasePeer::TYPE_NUM => array (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, )
);
/**
@@ -97,10 +106,10 @@ abstract class BaseAppDelayPeer
* e.g. self::$fieldNames[BasePeer::TYPE_PHPNAME]['Id'] = 0
*/
private static $fieldKeys = array (
BasePeer::TYPE_PHPNAME => array ('AppDelayUid' => 0, 'ProUid' => 1, 'AppUid' => 2, 'AppThreadIndex' => 3, 'AppDelIndex' => 4, 'AppType' => 5, 'AppStatus' => 6, 'AppNextTask' => 7, 'AppDelegationUser' => 8, 'AppEnableActionUser' => 9, 'AppEnableActionDate' => 10, 'AppDisableActionUser' => 11, 'AppDisableActionDate' => 12, 'AppAutomaticDisabledDate' => 13, ),
BasePeer::TYPE_COLNAME => array (AppDelayPeer::APP_DELAY_UID => 0, AppDelayPeer::PRO_UID => 1, AppDelayPeer::APP_UID => 2, AppDelayPeer::APP_THREAD_INDEX => 3, AppDelayPeer::APP_DEL_INDEX => 4, AppDelayPeer::APP_TYPE => 5, AppDelayPeer::APP_STATUS => 6, AppDelayPeer::APP_NEXT_TASK => 7, AppDelayPeer::APP_DELEGATION_USER => 8, AppDelayPeer::APP_ENABLE_ACTION_USER => 9, AppDelayPeer::APP_ENABLE_ACTION_DATE => 10, AppDelayPeer::APP_DISABLE_ACTION_USER => 11, AppDelayPeer::APP_DISABLE_ACTION_DATE => 12, AppDelayPeer::APP_AUTOMATIC_DISABLED_DATE => 13, ),
BasePeer::TYPE_FIELDNAME => array ('APP_DELAY_UID' => 0, 'PRO_UID' => 1, 'APP_UID' => 2, 'APP_THREAD_INDEX' => 3, 'APP_DEL_INDEX' => 4, 'APP_TYPE' => 5, 'APP_STATUS' => 6, 'APP_NEXT_TASK' => 7, 'APP_DELEGATION_USER' => 8, 'APP_ENABLE_ACTION_USER' => 9, 'APP_ENABLE_ACTION_DATE' => 10, 'APP_DISABLE_ACTION_USER' => 11, 'APP_DISABLE_ACTION_DATE' => 12, 'APP_AUTOMATIC_DISABLED_DATE' => 13, ),
BasePeer::TYPE_NUM => array (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, )
BasePeer::TYPE_PHPNAME => array ('AppDelayUid' => 0, 'ProUid' => 1, 'AppUid' => 2, 'AppNumber' => 3, 'AppThreadIndex' => 4, 'AppDelIndex' => 5, 'AppType' => 6, 'AppStatus' => 7, 'AppNextTask' => 8, 'AppDelegationUser' => 9, 'AppEnableActionUser' => 10, 'AppEnableActionDate' => 11, 'AppDisableActionUser' => 12, 'AppDisableActionDate' => 13, 'AppAutomaticDisabledDate' => 14, 'AppDelegationUserId' => 15, 'ProId' => 16, ),
BasePeer::TYPE_COLNAME => array (AppDelayPeer::APP_DELAY_UID => 0, AppDelayPeer::PRO_UID => 1, AppDelayPeer::APP_UID => 2, AppDelayPeer::APP_NUMBER => 3, AppDelayPeer::APP_THREAD_INDEX => 4, AppDelayPeer::APP_DEL_INDEX => 5, AppDelayPeer::APP_TYPE => 6, AppDelayPeer::APP_STATUS => 7, AppDelayPeer::APP_NEXT_TASK => 8, AppDelayPeer::APP_DELEGATION_USER => 9, AppDelayPeer::APP_ENABLE_ACTION_USER => 10, AppDelayPeer::APP_ENABLE_ACTION_DATE => 11, AppDelayPeer::APP_DISABLE_ACTION_USER => 12, AppDelayPeer::APP_DISABLE_ACTION_DATE => 13, AppDelayPeer::APP_AUTOMATIC_DISABLED_DATE => 14, AppDelayPeer::APP_DELEGATION_USER_ID => 15, AppDelayPeer::PRO_ID => 16, ),
BasePeer::TYPE_FIELDNAME => array ('APP_DELAY_UID' => 0, 'PRO_UID' => 1, 'APP_UID' => 2, 'APP_NUMBER' => 3, 'APP_THREAD_INDEX' => 4, 'APP_DEL_INDEX' => 5, 'APP_TYPE' => 6, 'APP_STATUS' => 7, 'APP_NEXT_TASK' => 8, 'APP_DELEGATION_USER' => 9, 'APP_ENABLE_ACTION_USER' => 10, 'APP_ENABLE_ACTION_DATE' => 11, 'APP_DISABLE_ACTION_USER' => 12, 'APP_DISABLE_ACTION_DATE' => 13, 'APP_AUTOMATIC_DISABLED_DATE' => 14, 'APP_DELEGATION_USER_ID' => 15, 'PRO_ID' => 16, ),
BasePeer::TYPE_NUM => array (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, )
);
/**
@@ -207,6 +216,8 @@ abstract class BaseAppDelayPeer
$criteria->addSelectColumn(AppDelayPeer::APP_UID);
$criteria->addSelectColumn(AppDelayPeer::APP_NUMBER);
$criteria->addSelectColumn(AppDelayPeer::APP_THREAD_INDEX);
$criteria->addSelectColumn(AppDelayPeer::APP_DEL_INDEX);
@@ -229,6 +240,10 @@ abstract class BaseAppDelayPeer
$criteria->addSelectColumn(AppDelayPeer::APP_AUTOMATIC_DISABLED_DATE);
$criteria->addSelectColumn(AppDelayPeer::APP_DELEGATION_USER_ID);
$criteria->addSelectColumn(AppDelayPeer::PRO_ID);
}
const COUNT = 'COUNT(APP_DELAY.APP_DELAY_UID)';

View File

@@ -1689,6 +1689,7 @@
<column name="APP_DELAY_UID" type="VARCHAR" size="32" required="true" primaryKey="true" default=""/>
<column name="PRO_UID" type="VARCHAR" size="32" required="true" default="0"/>
<column name="APP_UID" type="VARCHAR" size="32" required="true" default="0"/>
<column name="APP_NUMBER" type="INTEGER" required="false" default="0"/>
<column name="APP_THREAD_INDEX" type="INTEGER" required="true" default="0"/>
<column name="APP_DEL_INDEX" type="INTEGER" required="true" default="0"/>
<column name="APP_TYPE" type="VARCHAR" size="20" required="true" default="0"/>
@@ -1700,6 +1701,17 @@
<column name="APP_DISABLE_ACTION_USER" type="VARCHAR" size="32" default="0"/>
<column name="APP_DISABLE_ACTION_DATE" type="TIMESTAMP"/>
<column name="APP_AUTOMATIC_DISABLED_DATE" type="TIMESTAMP"/>
<column name="APP_DELEGATION_USER_ID" type="INTEGER" required="false" default="0"/>
<column name="PRO_ID" type="INTEGER" required="false" default="0"/>
<index name="INDEX_APP_NUMBER">
<index-column name="APP_NUMBER"/>
</index>
<index name="INDEX_USR_ID">
<index-column name="APP_DELEGATION_USER_ID"/>
</index>
<index name="INDEX_PRO_ID">
<index-column name="PRO_ID"/>
</index>
<index name="indexAppDelay">
<index-column name="PRO_UID"/>
<index-column name="APP_UID"/>

View File

@@ -828,6 +828,7 @@ CREATE TABLE `APP_DELAY`
`APP_DELAY_UID` VARCHAR(32) default '' NOT NULL,
`PRO_UID` VARCHAR(32) default '0' NOT NULL,
`APP_UID` VARCHAR(32) default '0' NOT NULL,
`APP_NUMBER` INTEGER default 0,
`APP_THREAD_INDEX` INTEGER default 0 NOT NULL,
`APP_DEL_INDEX` INTEGER default 0 NOT NULL,
`APP_TYPE` VARCHAR(20) default '0' NOT NULL,
@@ -839,7 +840,12 @@ CREATE TABLE `APP_DELAY`
`APP_DISABLE_ACTION_USER` VARCHAR(32) default '0',
`APP_DISABLE_ACTION_DATE` DATETIME,
`APP_AUTOMATIC_DISABLED_DATE` DATETIME,
`APP_DELEGATION_USER_ID` INTEGER default 0,
`PRO_ID` INTEGER default 0,
PRIMARY KEY (`APP_DELAY_UID`),
KEY `INDEX_APP_NUMBER`(`APP_NUMBER`),
KEY `INDEX_USR_ID`(`APP_DELEGATION_USER_ID`),
KEY `INDEX_PRO_ID`(`PRO_ID`),
KEY `indexAppDelay`(`PRO_UID`, `APP_UID`, `APP_THREAD_INDEX`, `APP_DEL_INDEX`, `APP_NEXT_TASK`, `APP_DELEGATION_USER`, `APP_DISABLE_ACTION_USER`),
KEY `indexAppUid`(`APP_UID`)
)ENGINE=InnoDB DEFAULT CHARSET='utf8' COMMENT='APP_DELAY';