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', . . . ))
);