由于 ENUM,无法使用脚本创建 table

Can't create table with script because of ENUM

我目前正在学校学习一些关于 sql 的基本知识。我们收到了一个练习,其中包括创建一个创建表的脚本。我们有一个模式,我们需要重新创建它。

我遇到了一些问题:

当我 运行 脚本时,它显示此错误:

CREATE TABLE "EMPLOYEE" ( "BIRTH_DATE"  DATE , "FIRST_NAME"     VARCHAR(14) , "LAST_NAME"               VARCHAR(16) , "GENDER"               ENUM('M','F') , "HIRE_DATE"          DATE ) IN "TS_EMPLOYEE"
DB21034E  The command was processed as an SQL statement because it was not a
valid Command Line Processor command.  During SQL processing it returned:
SQL0104N  An unexpected token "(" was found following "16) , "GENDER"  ENUM".
Expected tokens may include:  "DEFAULT".  SQLSTATE=42601

我在 Internet 上查找错误,认为我应该指定 DEFAULT。出于这个原因,我修改了添加这部分的脚本:

"GENDER" ENUM('M','F')DEFAULT 'M' ,

不幸的是,它对我帮助不大,因为它提示我犯了和以前一样的错误。 有谁知道我错在哪里?或者我可以改变什么?

感谢任何形式的帮助! ^^

我认为 DB2 不支持枚举。如果您使用的是 DB2,则使用 check 约束:

CREATE TABLE EMPLOYEE (
    BIRTH_DATE DATE,
    FIRST_NAME VARCHAR(14),
    LAST_NAME VARCHAR(16), 
    GENDER CHAR(1),
    HIRE_DATE DATE,
    CHECK (GENDER IN ('M', 'F'))
);

备注:

  1. 我去掉了双引号。只是不要将它们用作标识符。它们只会使查询混乱并引入出现奇怪错误的可能性。
  2. 我觉得这样的table应该有主键,虽然我没有加主键
  3. 名称字符串的长度似乎短得不必要。