mysql - 在表中插入类型 ID

标签 mysql sql

如何插入带有 value 和 Score_id 的分数?在服务器上我只知道score_type.name和score.value。我如何使用 Score_type 插入新分数?如果score_type名称存在,则获取id并插入,否则创建,获取id并插入。

tables

最佳答案

首先尝试创建 score_type(如果不存在):

INSERT IGNORE INTO score_type (name) VALUES ("type_name");

然后使用 INSERT ... SELECT 将 ID 插入到 score 表中:

INSERT INTO score (value, score_type_id, player_id)
SELECT 123, id, "player_name"
FROM score_type
WHERE name = "type_name";

第一个 INSERT 假设您在 score_type.name 上有一个唯一索引。 IGNORE 表示如果您尝试插入重复的名称,则会静默失败。

123player_name 替换为已知的 score.valuescore.player_id

关于mysql - 在表中插入类型 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58921931/

相关文章:

mysql - 从 MySQL 中的时间戳获取最近 'X' 天的记录

sql - Google 表格 - 从所选选项卡进行查询

sql - 更高效的SQL查询

php - Codeigniter SSH 连接到远程 MySQL 数据库

MySQL 在 order by 上使用多个索引

小数列的 SQL Sum 函数返回 int 而不是 decimal

php - 字段 'password' 没有默认值

python - 单个数据库列的搜索引擎

php - Ajax不向数据库中插入数据

mysql - 为什么sql中多对多关系的联结表同时实现外键作为主键?