“ INSERT INTO ... ON CONFLICT DO NOTHING”(在发生冲突时不插入...)在检查约束处停止

时间:2019-05-29 14:01:01

标签: sql postgresql

我正在执行测试任务。我开始构建模式。我完全不擅长创建表,修改表。在工作中,我过去只对数据库进行查询,并进行一些布局以显示数据。因此,我在www.db-fiddle.com选择了PostgreSQL并开始构建模式。

create table users (
);

alter table users
add nm varchar(999) not null,
add skype varchar(999);

alter table users
add constraint unique_skyp unique(skype);
alter table users
add constraint chk_skyp_form check(skype ~* '^skype:([a-zA-Z][a-zA-Z0-9]*){6,32}');

insert into users(nm, skype)
values ('Yaroslaw','skyp') 
on conflict do nothing;

我的目的是防止数据库用户插入格式不正确的Skype登录名。为了测试这一点,我写了一些插页。我希望如果弹出一个插入,将通过一个错误。失败了。

Schema Error: error: new row for relation "users" violates check constraint "chk_skyp_form"

我想要的是让一堆插入物不间断运行。但是我得到了以上信息。我该如何解决?

0 个答案:

没有答案