Example #1
0
 /**
  * Retrieve table foreign keys definition array for create table
  *
  * @param Varien_Db_Ddl_Table $table
  * @return array
  */
 protected function _getForeignKeysDefinition(Varien_Db_Ddl_Table $table)
 {
     $definition = array();
     $relations = $table->getForeignKeys();
     if (!empty($relations)) {
         foreach ($relations as $fkData) {
             $onDelete = $this->_getDdlAction($fkData['ON_DELETE']);
             $onUpdate = $this->_getDdlAction($fkData['ON_UPDATE']);
             $definition[] = sprintf('  CONSTRAINT %s FOREIGN KEY (%s) REFERENCES %s (%s) ON DELETE %s ON UPDATE %s', $this->quoteIdentifier($fkData['FK_NAME']), $this->quoteIdentifier($fkData['COLUMN_NAME']), $this->quoteIdentifier($fkData['REF_TABLE_NAME']), $this->quoteIdentifier($fkData['REF_COLUMN_NAME']), $onDelete, $onUpdate);
         }
     }
     return $definition;
 }
Example #2
0
 /**
  * Retrieve table foreign keys definition array for create table
  *
  * @param Varien_Db_Ddl_Table $table
  * @return array
  */
 protected function _getForeignKeysDefinition(Varien_Db_Ddl_Table $table)
 {
     $definition = array();
     $relations = $table->getForeignKeys();
     if (!empty($relations)) {
         foreach ($relations as $fkData) {
             switch ($fkData['ON_DELETE']) {
                 case Varien_Db_Ddl_Table::ACTION_CASCADE:
                 case Varien_Db_Ddl_Table::ACTION_RESTRICT:
                 case Varien_Db_Ddl_Table::ACTION_SET_NULL:
                     $onDelete = $fkData['ON_DELETE'];
                     break;
                 default:
                     $onDelete = Varien_Db_Ddl_Table::ACTION_NO_ACTION;
             }
             switch ($fkData['ON_UPDATE']) {
                 case Varien_Db_Ddl_Table::ACTION_CASCADE:
                 case Varien_Db_Ddl_Table::ACTION_RESTRICT:
                 case Varien_Db_Ddl_Table::ACTION_SET_NULL:
                     $onUpdate = $fkData['ON_UPDATE'];
                     break;
                 default:
                     $onUpdate = Varien_Db_Ddl_Table::ACTION_NO_ACTION;
             }
             $definition[] = sprintf('  CONSTRAINT %s FOREIGN KEY (%s) REFERENCES %s (%s) ON DELETE %s ON UPDATE %s', $this->quoteIdentifier($fkData['FK_NAME']), $this->quoteIdentifier($fkData['COLUMN_NAME']), $this->quoteIdentifier($fkData['REF_TABLE_NAME']), $this->quoteIdentifier($fkData['REF_COLUMN_NAME']), $onDelete, $onUpdate);
         }
     }
     return $definition;
 }