使用更多选项修改 Oracle DB 枚举列 - Laravel 迁移

Modify Oracle DB Enum column with more options - Laravel Migration

我正在寻找一种方法来向我的 Laravel 项目中 Oracle 数据库中 table 的枚举列添加更多选项。

这是我目前尝试过的方法。但它给了我以下错误。

public function up()
{
    DB::statement("ALTER TABLE tokens MODIFY COLUMN status ENUM('pending','in_progress','completed','hold','reject') DEFAULT 'pending'");
}

这个returns下面的错误。

  Error Code    : 905                                                                                                                  
  Error Message : ORA-00905: missing keyword                                                                                           
  Position      : 40                                                                                                                   
  Statement     : ALTER TABLE tokens MODIFY COLUMN status ENUM('pending','in_progress','completed','hold','reject') DEFAULT 'pending'  
  Bindings      : [] 

                                                                                                              
                          

如何实现?

我觉得你是什么

alter table
   tokens
add constraint
   check_constraint
   CHECK
   (status IN
      (
       'pending','in_progress','completed','hold','reject'
      )
   )ENABLE;

-- set default
ALTER TABLE tokens modify status DEFAULT 'pending';

在 oracle 中你可以这样做:

正在创建 table:

SQL> CREATE TABLE TOKENS (
  2  STATUS VARCHAR2(100)
  3  );

Table created.

SQL>

添加约束和默认值

SQL> ALTER TABLE TOKENS MODIFY
  2  STATUS DEFAULT 'pending';

Table altered.

SQL>
SQL> ALTER TABLE TOKENS
  2  ADD CONSTRAINT TOKEN_STATUS_CHK CHECK ( STATUS IN (
  3  'pending',
  4  'in_progress',
  5  'completed',
  6  'hold',
  7  'reject'
  8  ) );

Table altered.

SQL>