sql - Oracle 数据库中 IGNORE_DUP_KEY 的使用(sqlplus)

标签 sql oracle sqlplus

我正在尝试在少于 10000 行的行上运行以下代码,但我得到了

ORA-00001: unique constraint (constraint_name) violated (not unexpected).


UPDATE table1
   SET EMAILADRESSE = replace(EMAILADRESSE,'@domain1.no','@domain2.no')
 WHERE EMAILADRESSE LIKE '%@domain1.no' ;

试过 IGNORE_DUP_KEY ,但据我的研究表明,这在 oracle/SQL*PLUS 中不受支持。你对我有什么选择吗?

最佳答案

另一个与 NOT EXISTS !

UPDATE table1 t1
   SET EMAILADRESSE = replace(EMAILADRESSE,'@domain1.no','@domain2.no')
 WHERE EMAILADRESSE LIKE '%@domain1.no' 
 AND NOT EXISTS
 (SELECT 'X' FROM table1 t2 WHERE t2.EMAILADRESSE = replace(t1.EMAILADRESSE,'@domain1.no','@domain2.no'));

关于sql - Oracle 数据库中 IGNORE_DUP_KEY 的使用(sqlplus),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21132885/

相关文章:

SQLPlus 命令行脚本在插入记录时挂起

sql - 如何转义传递给 Oracle SQL 脚本的参数中的值

sql - dbms_job 未在 sqlplus shell 上运行

sql - 不允许新事务,因为 session 中还有其他线程正在运行。 SQL Server 中的错误

sql - 按某些列排序,在 MySQL 中也按 rand() 排序

java - 随机获取 "IO Error: The Network Adapter could not establish the connection"

oracle - 停止 SQL*Plus 提示空格

mysql - 在sql中的连接查询中选择另一个表

MySQL——if条件优化

oracle - 使用 WHERE IN 模式时获取 "ORA-01482: unsupported character set"