MySQL在列中插入特定值

MySQL在列中插入特定值,mysql,sql,mysql-workbench,Mysql,Sql,Mysql Workbench,我想创建一个包含两列(名称、爱好)的表 爱好值应来自此列表[足球、棒球、艺术、游戏、篮球、高尔夫] 如何创建这样的表?您可以使用外键关系。通常,这将使用数字id列。但如果您确实喜欢,也可以使用字符串值: 然后您可以将名称/爱好表定义为: create table name_hobbies ( name varchar(255) not null, hobby varchar(255) not null, constraint fk_name_hobbies_hobb

我想创建一个包含两列(名称、爱好)的表 爱好值应来自此列表[足球、棒球、艺术、游戏、篮球、高尔夫]
如何创建这样的表?

您可以使用外键关系。通常,这将使用数字id列。但如果您确实喜欢,也可以使用字符串值:

然后您可以将
名称
/
爱好
表定义为:

create table name_hobbies (
     name varchar(255) not null,
     hobby varchar(255) not null,
     constraint fk_name_hobbies_hobby foreign key (hobby) references hobbies(hobby)
);
这使得添加新爱好或添加关于每个爱好的附加信息(例如,它需要多少钱)变得很容易

我应该注意,您现在也可以在MySQL中使用
check
约束:

create table name_hobbies (
     name varchar(255) not null,
     hobby varchar(255) not null,
     constraint chk_name_hobbies_hobby check (hobby in ('football', 'baseball', . . . ))
);

您可以使用
ENUM
数据类型。请不要使用ENUM数据类型。
create table name_hobbies (
     name varchar(255) not null,
     hobby varchar(255) not null,
     constraint chk_name_hobbies_hobby check (hobby in ('football', 'baseball', . . . ))
);