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将特定值插入列的主要内容,如果未能解决你的问题,请参考以下文章

如何在mysql中特定列的单个单元格中插入多个整数值

如何将 SELECT ALL 值或 SELECTED 复选框值插入 mysql 中的不同列?

如何将不同的逗号分隔值插入mysql中的不同列

Grails数据库迁移-将插入值手动更改日志记录到表中的特定列

将Go的零时间。时间值插入MySQL DATETIME列错误

SQL Server 触发器插入/更新特定列