Sequence.php 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Framework\DB\Ddl;
  7. /**
  8. * Class Sequence represents DDL for manage sequences
  9. */
  10. class Sequence
  11. {
  12. /**
  13. * Return SQL for create sequence
  14. *
  15. * @param string $name The name of table in create statement
  16. * @param int $startNumber The auto increment start number
  17. * @param string $columnType Type of sequence_value column
  18. * @param bool|true $unsigned Flag to set sequence_value as UNSIGNED field
  19. * @return string
  20. */
  21. public function getCreateSequenceDdl(
  22. $name,
  23. $startNumber = 1,
  24. $columnType = Table::TYPE_INTEGER,
  25. $unsigned = true
  26. ) {
  27. $format = "CREATE TABLE %s (
  28. sequence_value %s %s NOT NULL AUTO_INCREMENT,
  29. PRIMARY KEY (sequence_value)
  30. ) AUTO_INCREMENT = %d ENGINE = INNODB";
  31. return sprintf($format, $name, $columnType, $unsigned ? 'UNSIGNED' : '', $startNumber);
  32. }
  33. /**
  34. * Return SQL for drop sequence
  35. *
  36. * @param string $name
  37. * @return string
  38. */
  39. public function dropSequence($name)
  40. {
  41. $format = "DROP TABLE %s";
  42. return sprintf($format, $name);
  43. }
  44. }