MySQL将特定值插入列
Posted
技术标签:
【中文标题】MySQL将特定值插入列【英文标题】:MySQL insert specific values to column 【发布时间】:2020-08-25 15:18:22 【问题描述】:我想创建一个包含两列的表(姓名、爱好) 爱好值应来自此列表 [足球、棒球、艺术、游戏、篮球、高尔夫] 如何创建这样的表?
【问题讨论】:
您可以使用ENUM
数据类型。
请不要使用 ENUM 数据类型。
【参考方案1】:
您可以使用外键关系。通常,这将使用数字 id 列。但您也可以使用字符串值,如果您真的更喜欢:
create table hobbies (
hobby varchar(255) primary key
);
insert into hobbies (hobby)
values ('football'), ('baseball'), . . . ;
那么你可以将name
/hobbies
表定义为:
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', . . . ))
);
【讨论】:
以上是关于MySQL将特定值插入列的主要内容,如果未能解决你的问题,请参考以下文章
如何将 SELECT ALL 值或 SELECTED 复选框值插入 mysql 中的不同列?
Grails数据库迁移-将插入值手动更改日志记录到表中的特定列