gpt4 book ai didi

mysql - 重复输入错误,但存在欺骗

转载 作者:太空宇宙 更新时间:2023-11-03 11:32:46 24 4
gpt4 key购买 nike

**+++更新+++

我刚刚发现另一个脚本中有相同的插入语句。这就是导致此错误的原因。

+++更新+++**

插入到这样创建的临时表时出现错误

CREATE TEMPORARY TABLE IF NOT EXISTS stage_package_dim (
`account_key` BIGINT(20) NOT NULL,
`processdate_est_key` INT(11) NOT NULL,
`package_id` INT(11) NOT NULL,
`package_name` VARCHAR(255) NULL DEFAULT NULL,
`package_description` VARCHAR(255) NULL DEFAULT NULL,
`package_type` VARCHAR(255) NULL DEFAULT NULL,
`package_order` INT(11) NULL DEFAULT '1',
`package_cost` DECIMAL(16,4) NULL DEFAULT '0.0000',
`package_credits` DECIMAL(16,4) NULL DEFAULT '0.0000',
PRIMARY KEY (`account_key`, `processdate_est_key`, `package_id`),
INDEX `package_type` (`package_type`)

);

错误是

Duplicate entry '1000000000000000001-1368576000-6001' for key 'PRIMARY'

所以我试图为我的复合键找到重复项,但我认为我的查询不正确

SELECT
account_key,COUNT(distinct processdate_est_key,package_id)
FROM staging_package_dim
GROUP BY account_key
HAVING COUNT(account_key) >1 order by 1 limit 10

但它给了我以下结果

+---------------------+--------------------+
| account_key | COUNT(account_key) |
+---------------------+--------------------+
| 1000000000000001001 | 1473 |
| 1000000000000002001 | 623 |
| 1000000000000003001 | 745 |

复合键不应该被欺骗,对吗?如何获取主键的唯一值?我在这里遗漏了什么吗?

最佳答案

证明表中没有重复项的查询是:

select account_key, processdate_est_key, package_id
from staging_package_dim
group by account_key, processdate_est_key, package_id
having count(*) > 1;

这将不会返回任何行,因为 account_key + processdate_est_key + package_id 是表的主键。

您的查询是错误的,因为 account_key 本身不是表的主键。同一个account_key在表中允许有多条记录。

关于mysql - 重复输入错误,但存在欺骗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48443091/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com