将另一个表中的值用作表中的ENUM值

时间:2012-06-19 21:04:35

标签: mysql sql

我们假设我在mySQL中有mytable

CREATE TABLE `mytable` (
  `gender` enum('MALE','FEMALE','UNISEX') NOT NULL,
);

我不想在设计时枚举这些值。我希望将它们作为值放在another_table中。

another_table中,SELECT值为:

ID    NAME
==    ======
01    MALE
02    FEMALE
03    UNISEX

我可以将mytable.gender定义为INT,并将WHERE子句中的这两个表与mytable.gender=another_table.id之类的表结合起来。

我可以在设计时使用这些枚举值创建数据库级外键关系吗?

1 个答案:

答案 0 :(得分:0)

是的,您使用foreign key constraint

这将使数据库拒绝在mytable表中插入或更新another_table表中不存在的another_table表中的id值,并拒绝从mytable表中删除值在{{1}}表格中使用的。