Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >MySQL INSERT/UPDATE无重复键

MySQL INSERT/UPDATE无重复键
EN

Stack Overflow用户
提问于 2009-07-28 12:08:35
回答 1查看 2.2K关注 0票数 3

我可能误解了如何使用ON DUPLICATE KEY语法,或者我的数据库结构需要一些工作,但这里开始了。

我有一个表( bookings - meta ),它表示与另一个表(bookings)相关联的元数据,bookings表中的不同行在另一个表中可能具有也可能没有与其关联的特定元数据。

bookings-meta表包含以下列: meta_id (主键)、booking_id、key和value。

根据我的理解,要在重复键上使用,我需要知道在这种情况下是什么meta_id,通常不是这样的,我试图简单地使用booking_id将键和值对推送到表中,所以如果特定键存在,那么它将被替换,否则将插入。

目前,我有一个单独的查询来尝试选择行,如果它找到了,我就更新它,如果没有,那么它是一个插入。

有没有一种方法可以在一个查询中执行插入/更新而不使用重复的键,或者我错过了这个技巧?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2009-07-28 12:12:25

如果可能,我会完全删除meta_id列,并将booking_idkey转换为复合主键。这将节省表中的空间,允许使用ON DUPLICATE KEY,并且总体上更加整洁。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1196441

复制
相关文章
从Mysql备份中恢复单个表
因为云平台的备份是把库中所有的表都打包成一个 .sql文件,然而这一个.sql文件大约有20G,现阶段的方法是把.sql文件source到数据库数据处理机器上,然后再根据需求提出需要的表。每次这个操作都需要大约2个多小时,太耗时。闲暇时间,Google到了一个大神写的几行代码,经过实验确实很好用。下面就分享出来,仅供参考。 思路(原谅我也理解了好一会儿): 主要使用sed命令来实现,加上-n,-e参数把打印的结果追加到一个文件中,就得到了想要的表的内容。 一般情况下我们使用sed打印指定行的内容是: [ro
行 者
2018/03/26
4.6K0
从Mysql备份中恢复单个表
【求助】从大表中删除小表中存在的记录问题
A表:30万,主键ID B表:300万,主键ID 从B表中删除ID=A表ID的记录。 DELETE FROM B WHERE EXISTS (SELECT 1 FROM (SELECT ID FROM (SELECT T.ID, ROWNUM RN FROM A) WHERE RN > 0 AND RN <= 50000) AB WHERE A.ID = B.ID); 但执行计划显示COST较大,且瓶颈是B表的全表扫描。 需求是这里有B1 ... B10多个B表(都是300万),串行操作
bisal
2019/01/29
5.1K0
[最佳实践] -- 建表如何选择Doris表模型
Doris的表模型和MySQL的存储引擎: innodb,myisam,memeory等功能类似, 不同的表模型擅长处理不同的数据方式. 如何能高效的查询, 直接取决于选择的表模型. 表一旦创建, 表模型不能更改.
小伟
2022/07/24
4.5K0
单表和连表?如何选择?
我们查询一百万多条后耗时为33457.8317 ms,大约30来秒,这是没有加索引的情况下
阿超
2022/08/16
8740
单表和连表?如何选择?
ABAP 取两个内表的交集 比较两个内表的不同
SAP自带的函数: CTVB_COMPARE_TABLES和BKK_COMPARE_TABLES; 似乎可以比较两个内表,得出第二个内表不同于第一个内表的部分(新增/删除了那些部分) 但是,具体的使用,还请有经验的朋友不吝赐教啊! 因为,我在测试数据时,发现这两个函数的效果不那么简单。 如果上述函数确实可以,提取两个内表不同部分,则我可以据此做两次比较,得到两个内表的交集。 所以,我先用另外一种方式解决了-自己写了一个提取两个内表交集的函数,供大家检阅: *" IMPORTING *" VALUE(ITAB1) TYPE INDEX TABLE *" VALUE(ITAB2) TYPE INDEX TABLE *" EXPORTING *" VALUE(ITABSAME) TYPE INDEX TABLE *"---------------------------------------------------------------------- field-symbols: <S1>, <S2>. data: L1 type i, L2 type i. assign local copy of initial line of: ITAB1 to <S1>, ITAB2 to <S2>. describe: table ITAB1 lines L1, table ITAB2 lines L2. "对记录行数少的内表,执行第一层循环; "在第二层循环中,找到对应记录,即可追加到结果内表; "同时退出第二层循环,继续执行第一层循环的下一行 IF L1 <= L2. LOOP AT ITAB1 INTO <S1>. LOOP AT ITAB2 INTO <S2>. IF <S1> EQ <S2>. APPEND <S1> TO ITABSAME. EXIT. ENDIF. ENDLOOP. ENDLOOP. ELSE. LOOP AT ITAB2 INTO <S2>. LOOP AT ITAB1 INTO <S1>. IF <S1> EQ <S2>. APPEND <S2> TO ITABSAME. EXIT. ENDIF. ENDLOOP. ENDLOOP. ENDIF. ENDFUNCTION. 另一个问题,想请教大家,在上面代码里,第二层循环是为了找出,第一层循环的当前记录,在第二个内表里是否存在;
matinal
2020/11/26
3.1K0
sql优化:组合两个表
第一:主要是显示person表里面的数据的话,如果是(left join)左连接就把person放在左边,如果是(right join)右连接,就把person放在右边。 第二:因为表 Address 中的 personId 是表 person 的外键,所以我们可以连接这两个表来获取一个人的地址信息。 那问题来了,什么是外键呢? 某一个表的主键是另一张表的某个普通的字段。那就叫外键.双方类型必须一致哦.
贵哥的编程之路
2021/09/08
9270
HBase学习—高表与宽表的选择
转自:https://yq.aliyun.com/articles/213705?utm_content=m_31236 hbase中的宽表是指很多列较少行,即列多行少的表,一行中的数据量较大,行数
Spark学习技巧
2018/01/31
2.4K0
从两个角度看 Typescript 中的类型是什么?
作者是 Dr. Axel Rauschmayer,号称”德国阮一峰“,本文原文来自于他的博客:https://2ality.com/2020/02/understanding-types-typescript.html,不熟悉他的可以关注一下他的博客。
桃翁
2020/03/17
1.5K0
如何从两个List中筛选出相同的值
问题 现有社保卡和身份证若干,想要匹配筛选出一一对应的社保卡和身份证。 转换为List<社保卡> socialList,和List idList,从二者中找出匹配的社保卡。 模型 创建社保卡类 /** * @author Ryan Miao */ class SocialSecurity{ private Integer id;//社保号码 private Integer idCard;//身份证号码 private String somethingElse; p
Ryan-Miao
2018/03/14
6.1K0
如何从两个List中筛选出相同的值
从两个角度理解 TypeScript 中的类型是什么
从这个角度来看,我们不关心值本身以及在执行代码时它们是如何流动的。相反,我们采取了更加静态的观点:
疯狂的技术宅
2020/03/16
1.5K0
从两个角度理解 TypeScript 中的类型是什么
【Leetcode】175. 组合两个表
编写一个 SQL 查询,满足条件:无论 person 是否有地址信息,都需要基于上述两表提供 person 的以下信息:
Leetcode名企之路
2018/11/29
1.1K0
从 Python 列表(list)中随机选择一个元素
import random foo = ['a', 'b', 'c', 'd', 'e'] print(random.choice(foo)) 或 foo = ['a', 'b', 'c', 'd', 'e'] from random import randrange random_index = randrange(0,len(foo)) print foo[random_index]
Python疯子
2018/09/06
6.9K0
Django 分表的两个方案
这个问题戳到了Django ORM的痛点,对于多数据库/分库的问题,Django提供了很好的支持,通过using和db router可以很好的完成多数据库的操作。但是说到分表的问题,就有点不那么友好了。但也不是那么难处理,只是处理起来不太优雅。
the5fire
2019/03/01
3.3K2
LeetCode-175. 组合两个表
编写一个 SQL 查询,满足条件:无论 person 是否有地址信息,都需要基于上述两表提供 person 的以下信息:
悠扬前奏
2019/05/28
3930
Leetcode No.175 组合两个表
编写一个 SQL 查询,满足条件:无论 person 是否有地址信息,都需要基于上述两表提供 person 的以下信息:
week
2021/05/06
3260
从listView1中选择记录到listView2中「建议收藏」
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/158247.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/19
7010
sql INNER JOIN 取得两个表中存在连接匹配关系的记录(mysql)
在这里,INNER JOIN(内连接,或等值连接):取得两个表中存在连接匹配关系的记录。 例如我要取到table1和table2之中 age1和age2相同的结果并且结合起来: SELECT * FROM table1 INNER JOIN table2 ON table1.age1 = table2.age1; 在这里使用inner join 来联合table1和table2
1_bit
2021/01/14
6K0
sql INNER JOIN 取得两个表中存在连接匹配关系的记录(mysql)
[数据结构] 两个有序线性表的合并
Question 【问题描述】 编制一个能演示将两个有序表合并为一个有序表的程序。 【基本要求】 已知递增有序线性表LA和LB,现将LA和LB合并到LC,LC也是递增有序的。 【测试数据】 LA=(3,5,8,11)  LB=(2,6,8,9,11,15,20) 合并后的LC=(2,3,5,6,8,9,11,15,20) #include<stdio.h> #include<stdlib.h> //构建线性表结构 typedef struct LNode *List; struct LNode{ in
泰坦HW
2020/07/22
3.5K0
Android 从相册中选择照片
在这里通过放回路径设置头像,但由于图片路径生成可能有一定延时,所以这里开一个线程等待:
圆号本昊
2021/09/24
9620
Android 从相册中选择照片
常用的ClickHouse表引擎及其选择场景
ClickHouse是一个面向列存储的分布式数据库管理系统,支持多种表引擎。不同的表引擎适用于不同的数据访问模式和性能需求。以下是几种常用的ClickHouse表引擎及其选择场景的示例:
一凡sir
2023/10/12
1.1K0
常用的ClickHouse表引擎及其选择场景

相似问题

从两个表中快速选择数据

30

从两个相关表中复制选择

14

从两个表中写入选择

21

从两个表中选择?

13

从两个表中选择

48
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文