@@ 733-752 (lines=20) @@ | ||
730 | /** |
|
731 | * {@inheritdoc} |
|
732 | */ |
|
733 | public function getForeignKeyReferentialActionSQL($action) |
|
734 | { |
|
735 | $action = strtoupper($action); |
|
736 | ||
737 | switch ($action) { |
|
738 | case 'RESTRICT': // RESTRICT is not supported, therefore falling back to NO ACTION. |
|
739 | case 'NO ACTION': |
|
740 | // NO ACTION cannot be declared explicitly, |
|
741 | // therefore returning empty string to indicate to OMIT the referential clause. |
|
742 | return ''; |
|
743 | ||
744 | case 'CASCADE': |
|
745 | case 'SET NULL': |
|
746 | return $action; |
|
747 | ||
748 | default: |
|
749 | // SET DEFAULT is not supported, throw exception instead. |
|
750 | throw new \InvalidArgumentException('Invalid foreign key action: ' . $action); |
|
751 | } |
|
752 | } |
|
753 | ||
754 | /** |
|
755 | * {@inheritDoc} |
@@ 2494-2507 (lines=14) @@ | ||
2491 | * |
|
2492 | * @throws \InvalidArgumentException if unknown referential action given |
|
2493 | */ |
|
2494 | public function getForeignKeyReferentialActionSQL($action) |
|
2495 | { |
|
2496 | $upper = strtoupper($action); |
|
2497 | switch ($upper) { |
|
2498 | case 'CASCADE': |
|
2499 | case 'SET NULL': |
|
2500 | case 'NO ACTION': |
|
2501 | case 'RESTRICT': |
|
2502 | case 'SET DEFAULT': |
|
2503 | return $upper; |
|
2504 | default: |
|
2505 | throw new \InvalidArgumentException('Invalid foreign key action: ' . $upper); |
|
2506 | } |
|
2507 | } |
|
2508 | ||
2509 | /** |
|
2510 | * Obtains DBMS specific SQL code portion needed to set the FOREIGN KEY constraint |