我有这样的桌子:
p_id | store | createdat | device | deviceserial | application
------+-------+---------------------+---------+--------------+-------------
| z10 | 2020-09-02 08:02:39 | Android | 636363636890 | app-a
| z10 | 2020-09-02 08:08:18 | Android | 636363636890 | app-a
| z10 | 2020-09-02 08:10:10 | Android | 636363636890 | app-a
| z10 | 2020-09-02 08:20:10 | Android | 636363636890 | app-a
| z10 | 2020-09-02 10:40:11 | IOS | 6625839827 | app-b
| z10 | 2020-09-02 10:45:11 | IOS | 6625839827 | app-b
| z10 | 2020-09-02 10:50:11 | IOS | 6625839827 | app-b
| z11 | 2020-09-02 08:47:10 | Android | 636363636891 | app-a
| z11 | 2020-09-02 08:55:10 | Android | 636363636891 | app-a
| z11 | 2020-09-02 08:59:10 | Android | 636363636891 | app-a
| z11 | 2020-09-02 13:01:11 | IOS | 6625839828 | app-b
| z11 | 2020-09-02 13:15:11 | IOS | 6625839828 | app-b
| z10 | 2020-09-02 12:03:10 | Android | 636363636890 | app-a
| z10 | 2020-09-02 12:09:10 | Android | 636363636890 | app-a
| z10 | 2020-09-02 12:12:10 | Android | 636363636890 | app-a
| z10 | 2020-09-02 15:15:11 | IOS | 6625839827 | app-b
| z10 | 2020-09-02 15:20:11 | IOS | 6625839827 | app-b
| z11 | 2020-09-02 10:25:10 | Android | 636363636891 | app-a
| z11 | 2020-09-02 10:35:10 | Android | 636363636891 | app-a
我试图插入一些查询到另一个表(device_usage_test1)。这是我的表:
create table if not exists device_usage_test1(id SERIAL,deviceserial VARCHAR(50) UNIQUE,device VARCHAR(50),deviceusage DOUBLE PRECISION)
这是我的插入命令:
insert into device_usage_test1(deviceserial,device,deviceusage) select deviceserial,device,sum(deviceusage) as deviceusage
from (
select deviceserial,device,
extract(epoch from (max(createdat)::timestamp - min(createdat)::timestamp)) as deviceusage,
date_trunc('hour', createdat) +
(((date_part('minute', createdat)::integer / 10::integer) * 10::integer)|| ' minutes')::interval AS hr
FROM datatable
group by deviceserial,hr,device
) t
group by deviceserial,device;
稍后,我将在device_usage_test1上创建一个插入查询。所以我的设备序列必须是唯一的。但是当我尝试用deviceserial (unique)插入时。它显示错误:< code >错误:重复的键值违反了唯一约束“device _ usage _ device serial _ key”
< code >详细信息:密钥(device serial)=(6363636890)已经存在。
你有数据问题。您的选择正在返回至少2个具有相同设备序列号(1004573GT7)的设备。尝试运行以下命令:
select *
from (select deviceserial
,device
,extract(epoch from (max(createdat)::timestamp - min(createdat)::timestamp)) as deviceusage
,date_trunc('hour', createdat) +
(((date_part('minute', createdat)::integer / 10::integer) * 10::integer)|| ' minutes')::interval AS hr
from datatable where createdat > now() - interval '1 day'
group by deviceserial,hr,device
) s
having count(deviceserial)>1
order by deviceserial;
注意:没有给出表定义或示例数据,上述未测试。
第二:< br >不能有一个唯一的约束设备序列,同时又有多个设备用于一个设备序列。根据定义,每个deviceserail有多个设备在deviceserail上并不是唯一的。相反,您可以在两者(deviceserail,device)上定义您的唯一密钥。
drop table device_usage_test1;
create table device_usage_test1(id serial
,deviceserial varchar(50)
,device varchar(50)
,deviceusage double precision
,constraint device_usage_test1_pk
primary key (id)
,constraint device_usage_test1_bk
unique (deviceserial,device)
);
然而,这允许您的初始坏数据同时具有“android”和“Android”共存。您可能希望限制设备的大写。例如:
alter table device_usage_test1
add constraint device_initcap_check
check (device = initcap(device));
我在创建应用程序时遇到了这个问题。因此,每当我添加第一条评论时,问题都不会出现,但当我第二次尝试时,我会收到此错误: 重复的键值违反了唯一约束“tripplanner_discussion_author_id_key”详细信息:键 (author_id)=(1) 已存在。 我试图把放到 models.py,但它根本没有帮助。 models.py views.py 更新 当我登录到另一个用户时,一个
我有两个表通知和消息。 Message.java 我的用例是——我将创建一条具有特定描述和开始时间的消息。如果我再次收到相同的消息,我应该能够更新结束时间。MessageId在方法generateMessageId下单独计算,因为这将作为一个标识符来查找消息是否已经保存。如果是,我将更新消息。它对第一条消息很有效,但当我尝试用更新的endTime再次保存时,我得到了 错误:重复的键值违反了唯一约束
当并发客户机试图将数据插入子表时,我们面临唯一的约束冲突问题。 假设我们有1以下的表格。用户user_id、first_name、last_name。2.项目project_idproject_name和project_description。 两者都有着多对多的关系。 当两个客户端试图创建一个新用户时。假设client1创建了user1(id=aa1),子记录项目(id=1)。Client2还创
这是我的stacktrace: 学生表: 学生实体:学生标识默认为自动递增 postgres控制台(这些学生由sql脚本创建): 在此处输入图像描述 我也尝试过这样生成,但这没有帮助 我用postgreql它似乎我有问题与id Generator,谢谢你的想法和答案
我在django应用程序中创建了一个模型,并从pgadmin将数据填充到表中,但现在当我试图从应用程序创建记录时,它抛出了这个完整性错误: 重复的键值违反了唯一约束“packsapp_foo_pkey” 详细信息:键(id)=(4)已经存在。 这是models.py 我是否总是必须从应用程序本身插入数据? Views.py
我必须交换同一表的不同行的属性。 有一列“reference_id”在 DB 中具有唯一的约束。 代码: A 级- B级- 异常跟踪: