- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我发现自己试图通过别人编写的程序来处理糟糕的数据库结构,并且正在尝试编写我的查询来处理这个问题。我正在尝试模拟一个没有已知唯一/主键的 upsert 查询...
DELIMITER //
IF ( ( SELECT COUNT( f_id ) FROM `wp_cformsdata` WHERE field_name='Agent First Name' AND sub_id='395' ) > 0 ) THEN
UPDATE `wp_cformsdata` SET field_val='Shane' WHERE field_name='Agent First Name' AND sub_id='395';
ELSE
INSERT INTO `wp_cformsdata` (sub_id, field_name, field_val) VALUES ( '395', 'Agent First Name', 'Shane' );
END IF;
DELIMITER ;
基本上我的表格布局如下...
+------+--------+------------+-----------+
| f_id | sub_id | field_name | field_val |
+------+--------+------------+-----------+
此表用于存储公司的个别数据。
'f_id' 是该表中唯一的索引键(主键)。我们不知道它的值(value),或者是否存在任何包含数据的键。
'sub_id' 是另一个表的外键,每个公司的条目都包含该外键。
'field_name'是公司信息的名称(eg. Company Name)
'field_val' 是字段的实际值(例如 Google Inc.)
我正在尝试更新这些表中的数据,或者在不存在数据的地方插入数据。由于此表的性质,我无法在任何字段上创建索引。请引用上面的 SQL 以查看我在做什么 - 是的,它有点臃肿。如果您有更好的解决方案,请告诉我!
我已经尝试了 INSERT ... ON DUPLICATE KEY UPDATE
upsert 查询,但是这不起作用,因为我们没有唯一键或主键在这里工作。
最佳答案
您实际上将 (sub_id, field_name)
视为复合键。我假设 f_id
是一个自动递增的列?如果是这样,您可以在 (sub_id, field_name)
上定义一个唯一约束:
ALTER TABLE wp_cformsdata ADD UNIQUE mykey (sub_id, field_name)
然后使用 INSERT ... ON DUPLICATE KEY UPDATE
它不仅在存在重复主键时执行 UPDATE
子句,而且在任何其他唯一键约束时执行被侵犯。另请参阅对已接受答案的评论 here .
关于MySQL 问题 - 试图应对糟糕的数据库结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12775292/
本文分享自华为云社区《【沃土方案--金融】银丰新融-反洗钱自主监测系统(一)》,作者:HuaweiCloudDeveloper 。 “三反(反洗钱、反恐怖融资、反逃税)”意见持续深化落实,第四轮互评估
关闭。这个问题需要多问focused 。目前不接受答案。 想要改进此问题吗?更新问题,使其仅关注一个问题 editing this post . 已关闭 9 年前。 Improve this ques
我们有一个数据驱动的 Activity ,它构建了一大组(通常最多 100 个)类似按钮的组件,并将它们放在一个 Scrollable 中。每个按钮都是从资源中膨胀的,并且基于 RelativeLay
我在一个非常早期的项目中使用 Hibernate EntityManager 和 Hibernate Annotations for ORM。该项目需要尽快启动,但规范不断变化,我担心系统将启动并收集
这是一个来自 SPOJ 的简单编程问题:http://www.spoj.com/problems/PROBTRES/ . 基本上,您需要输出 i 和 j 之间数字的最大 Collatz 循环。 (
由于 C++11 引入了新的统一初始化语法,许多人建议使用它来代替旧式语法。至少,如果不是这个所谓的极端情况: struct Foo { Foo(int){ std::cout
Log4J2漏洞涉及的影响太广了,昨天发文后很多粉丝留言问Spring Boot项目是否受到Log4J2漏洞影响。Spring官方已经全面进行了排查,现在大家可以知道这些信息和应对方法。 默认
我正在通过 UDP(视频数据)接收 RTP。 RTP 包含我需要解码的 H264。不幸的是,大多数 RTP 都包含零散的数据。由于缺少 RTP 序列,我无法正确重建 H264。 关于如何减少数据丢失以
我正在阅读 this thread并在解决方案中注意到,如果您发送的数据长度与实际数据分开,Nagle 的算法可能会播放和取消同步发送的数据。 我想知道这一点,因为我看到很多代码示例,客户端首先发送数
我正在创建一个简单的应用程序,它将使用react-native-firebase和react-native-maps。按照安装文档的说明,我已经启动并运行了 map ,没有任何问题。接下来,我已经安装
我是一名优秀的程序员,十分优秀!