好顺佳集团
2023-02-15 08:38:27
1339
内容摘要:原因:设置不导入可能重复的照片。1.首先打开lightroom应用,点击打开左上角文件中的“导入照片和视频”选...
原因:设置不导入可能重复的照片。
1.首先打开lightroom应用,点击打开左上角文件中的“导入照片和视频”选项。
2.然后打开弹出窗口右上角的“文件处理”,取消勾选“不导入可能重复的照片”选项。
3.然后选择要导入的图片,点击“导入”。
4.然后您可以再次导入图片。
避免MySql中重复插入记录的几种方法
在本文中,我们将为您提供三种避免mysql中重复插入记录的方法,主要包括忽略、替换和重复键更新。有需要的朋友可以参考一下。
方案1:使用ignore关键字
如果记录的唯一性是通过主键或唯一索引来区分的,为了避免重复插入记录,可以使用:
复制代码如下:
将IGNORE插入` table_name` (`email `,` phone `,` user_id `)值(' ',' 99999 ',' 9999 ');
这样,重复的记录将被忽略,执行后返回数字0。
另一个应用是复制表格以避免重复记录:
复制代码如下:
INSERT IGNORE INTO ` table _ 1 `(` name `) SELECT ` name ` FROM ` table _ 2 `;
选项2:使用替换
语法格式:
复制代码如下:
替换为“表名”(“列名”,)值(.);
替换为“表名”(“列名”,)选择.
替换为' table _ name ' SET ' col _ name `=' value ',
.算法描述:
替换的工作与插入非常相似,但是如果旧记录与新记录具有相同的值,则在插入新记录之前旧记录将被删除,即:
尝试在表格中插入新行。
当由于主键或唯一键的重复键错误而导致插入失败时:
从表中删除具有重复键值的行。
再次尝试在表格中插入新行。
判断旧记录与新记录具有相同值的标准是:
该表有一个主键或唯一索引,否则,使用REPLACE语句没有意义。该语句与INSERT相同,因为没有使用索引来确定新行是否复制了其他行。
返回值:
REPLACE语句返回一个数字来指示受影响的行数。这个数字是删除行和插入行的总和。
受影响的行数可以很容易地确定replace是否只添加一行,或者REPLACE是否还替换其他行:检查数字是否为1 (add)或更大(REPLACE)。
示例:
eg:(字段是唯一的索引)
复制代码如下:
替换为` table_name` (`email `,` phone `,` user_id `)值(' test569 ',' 99999 ',' 123 ');
另外,在SQL Server中,可以这样处理:
复制代码如下:
如果不存在(select phone from t where phone='1 '),则插入t(phone,update_time)值(' 1 ',getdate()),否则更新t set update_time=getdate(),其中phone='1 '
有关更多信息,请参见:
方案3:重复密钥更新
如上所述,您还可以在插入后添加重复的键更新方法….如果指定ON DUPLICATE KEY UPDATE,并且插入行将导致唯一索引或主键中出现重复值,则将执行旧行更新。
例如,如果列A被定义为UNIQUE,并且包含值1,则以下两条语句具有相同的效果:
复制代码如下:
在复制密钥更新` c`=`c` 1时,将值(1,2,3)插入` table` (`a`, `b`, `c `)中;
更新“表”集合“c ”=“c”1,其中“a ”=1;
如果该行作为新记录插入,受影响行的值为1;如果原始记录被更新,受影响行的值为2。
注意:如果列B也是唯一的列,INSERT相当于下面的UPDATE语句:
复制代码如下:
更新“表”集合“c ”=“c”1,其中“a ”=1或“b ”=2限制1;
如果a=1或b=2匹配多个行方向,则只更新一行。通常,应该尽量避免对具有多个唯一键的表使用ON DUPLICATE KEY子句。
可以在UPDATE子句中使用VALUES(col_name)函数来引用INSERT…UPDATE语句的插入部分中的列值。换句话说,如果没有重复的关键字,UPDATE子句中的值(col_name)可以引用col_name的插入值。该函数特别适用于多行插入。VALUES()函数仅在INSERT…UPDATE语句中有意义,在其他时候将返回NULL。
复制代码如下:
在重复键上插入` table` (`a`, `b`, `c `)值(1,2,3),(4,5,6)更新` c`=值(` a `)值(` b `);
该语句与以下两个语句具有相同的功能:
复制代码如下:
在重复键更新` c`=3时,将值(1,2,3)插入` table` (`a`, `b`, `c `)中;
在重复密钥更新c=9时,将值(4,5,6)插入到“表”(“a”,“b”,“c ”)中;
注意:当使用ON DUPLICATE KEY UPDATE时,将忽略DELAYED选项。
示例:
这个例子是我在一个实际项目中使用的:当一个表中的数据导入到另一个表中时,必须考虑数据的重复性(如下),唯一索引为:email:
复制代码如下:
插入到` table_name1` (`title `、` first_name `、` last_name `、` email `、` phone `、` user_id `、` role_id `、` status `、` campaign_id `)
SELECT '','',' ',` table _ name 2 ` . ` email `, ` table _ name 2 ` . ` phone `, NULL,NULL,' pending ',29 FROM `table_name2 '
其中“表名2”.“状态”=1
对重复的键更新` table _ name 1 '` status `=' pending '
再贴一个例子:
复制代码如下:
在重复键更新“class”时插入到“class”SELECT * FROM“class 1 ”。` course `=` class 1 `。` course '
其他重点:DELAYED作为一种快速插入,并不太在意失效,以提高插入性能。
IGNORE只关注主键对应的记录是否不存在。如果不存在,将被添加,如果存在,将被忽略。
注意:在MYSQL中,唯一索引对于空字段将无效,即(唯一索引建立在A字段上):
复制代码如下:
插入` test` (`a `)值(空);
它可以重复插入(对于联合唯一索引也是如此)。
红字冲销的方法:点击采购入库单-点击红字-从源单据类型中选择采购入库单-在菜单号中找到重复单据-选择重复单据并返回,单据保存待审核完成红字单据的制作,然后进行相应的下推,如下推红字发票,生成冲销凭证。
说明你导入了重复商品,应该是你版本的bug。稍微修改一下商品的编码和名称,输入即可。如果要删除,只能在后台删除。
主键是长表中唯一非空的键。
此错误意味着插入数据时主键重复。你可以看看你的数据。查看主键列的值是否相同。
张总监 13826528954
限时领取创业礼包
所有服务
您的申请我们已经收到!
专属顾问会尽快与您联系,请保持电话畅通!