Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL更新,即使违反了某些唯一约束也会继续_Sql_Postgresql_Sql Update_Try Catch_Constraints - Fatal编程技术网

SQL更新,即使违反了某些唯一约束也会继续

SQL更新,即使违反了某些唯一约束也会继续,sql,postgresql,sql-update,try-catch,constraints,Sql,Postgresql,Sql Update,Try Catch,Constraints,我正在努力清理我的电子邮件。一个例子是将“.con”电子邮件替换为“.com”。这就是我到目前为止所做的: UPDATE users SET email = CONCAT( SUBSTRING(email, 1, LENGTH(email)-3), 'com') WHERE email like '%.con'; 如果单个.con电子邮件的.com版本已存在,则此命令将失败。有没有办法让它默默地失败?该表有数百万个条目,因此添加一个不存在项的效果不够好添加一个不存在项是您唯一的选择。什么是相

我正在努力清理我的电子邮件。一个例子是将“.con”电子邮件替换为“.com”。这就是我到目前为止所做的:

UPDATE users 
SET email = CONCAT(
SUBSTRING(email, 1, LENGTH(email)-3), 'com')
WHERE email like '%.con';

如果单个.con电子邮件的.com版本已存在,则此命令将失败。有没有办法让它默默地失败?该表有数百万个条目,因此添加一个不存在项的效果不够好

添加一个不存在项是您唯一的选择。什么是相当大的,为什么你认为这不是一个选择?但如果.com已经存在,你想做什么-keep.con?!?是的,keep.con@a_horse_与_no_name:编辑中的数字。这只是我自己的估计。但我现在将尝试notexists选项:。。。并且不存在从用户处选择电子邮件,如CONCATSUBSTRINGusers.email,1,LENGTHusers.email-3,“com”;几百万听起来不算大,实际上,几亿也算大。如果你有一个真正的性能问题,请阅读此:或此:然后更新你的问题。顺便说一句:不存在。。。构造将测试与唯一约束完全相同的条件,因此不会降低更新速度。只有更成功。