3 * Zend Framework (http://framework.zend.com/)
5 * @link http://github.com/zendframework/zf2 for the canonical source repository
6 * @copyright Copyright (c) 2005-2013 Zend Technologies USA Inc. (http://www.zend.com)
7 * @license http://framework.zend.com/license/new-bsd New BSD License
10 namespace Zend\Db\Sql\Ddl\Constraint
;
12 class ForeignKey
extends AbstractConstraint
22 protected $onDeleteRule = 'NO ACTION';
27 protected $onUpdateRule = 'NO ACTION';
32 protected $referenceColumn;
37 protected $referenceTable;
42 protected $specification = 'CONSTRAINT %1$s FOREIGN KEY (%2$s) REFERENCES %3$s (%4$s) ON DELETE %5$s ON UPDATE %6$s';
45 * @param array|null|string $name
46 * @param string $column
47 * @param string $referenceTable
48 * @param string $referenceColumn
49 * @param null|string $onDeleteRule
50 * @param null|string $onUpdateRule
52 public function __construct($name, $column, $referenceTable, $referenceColumn, $onDeleteRule = null, $onUpdateRule = null)
54 $this->setName($name);
55 $this->setColumns($column);
56 $this->setReferenceTable($referenceTable);
57 $this->setReferenceColumn($referenceColumn);
58 (!$onDeleteRule) ?
: $this->setOnDeleteRule($onDeleteRule);
59 (!$onUpdateRule) ?
: $this->setOnUpdateRule($onUpdateRule);
66 public function setName($name)
75 public function getName()
81 * @param string $referenceTable
84 public function setReferenceTable($referenceTable)
86 $this->referenceTable
= $referenceTable;
93 public function getReferenceTable()
95 return $this->referenceTable
;
99 * @param string $referenceColumn
102 public function setReferenceColumn($referenceColumn)
104 $this->referenceColumn
= $referenceColumn;
111 public function getReferenceColumn()
113 return $this->referenceColumn
;
117 * @param string $onDeleteRule
120 public function setOnDeleteRule($onDeleteRule)
122 $this->onDeleteRule
= $onDeleteRule;
129 public function getOnDeleteRule()
131 return $this->onDeleteRule
;
135 * @param string $onUpdateRule
138 public function setOnUpdateRule($onUpdateRule)
140 $this->onUpdateRule
= $onUpdateRule;
147 public function getOnUpdateRule()
149 return $this->onUpdateRule
;
155 public function getExpressionData()
158 $this->specification
,
162 $this->referenceTable
,
163 $this->referenceColumn
,
168 self
::TYPE_IDENTIFIER
,
169 self
::TYPE_IDENTIFIER
,
170 self
::TYPE_IDENTIFIER
,
171 self
::TYPE_IDENTIFIER
,