| @@ 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} |
|
| @@ 2510-2523 (lines=14) @@ | ||
| 2507 | * |
|
| 2508 | * @throws \InvalidArgumentException if unknown referential action given |
|
| 2509 | */ |
|
| 2510 | public function getForeignKeyReferentialActionSQL($action) |
|
| 2511 | { |
|
| 2512 | $upper = strtoupper($action); |
|
| 2513 | switch ($upper) { |
|
| 2514 | case 'CASCADE': |
|
| 2515 | case 'SET NULL': |
|
| 2516 | case 'NO ACTION': |
|
| 2517 | case 'RESTRICT': |
|
| 2518 | case 'SET DEFAULT': |
|
| 2519 | return $upper; |
|
| 2520 | default: |
|
| 2521 | throw new \InvalidArgumentException('Invalid foreign key action: ' . $upper); |
|
| 2522 | } |
|
| 2523 | } |
|
| 2524 | ||
| 2525 | /** |
|
| 2526 | * Obtains DBMS specific SQL code portion needed to set the FOREIGN KEY constraint |
|