duplicate

Duplicate Symbol链接错的原因总结和解决方法   

五迷三道 提交于 2019-12-10 05:32:41
duplicate symbol是一种常见的链接错误,不像编译错误那样可以直接定位到问题的所在。但是经过一段时间的总结,发现这种错误总是有一些规律可以找的。 例如,我们有如下的最简单的两个类代码: // ClassA.h #import <Foundation/Foundation.h> @interface ClassA : NSObject @end // ClassA.m #import "ClassA.h" @implementation ClassA @end // ClassB.h #import <Foundation/Foundation.h> @interface ClassB : NSObject @end // ClassB.m #import "ClassB.h” @implementation ClassB @end 编译后出现的错误信息如下: duplicate symbol _OBJC_METACLASS_$_ClassA in: /Users/dajie/Library/Developer/Xcode/DerivedData/linkTest-cpjaaatiyqpvxcbzfzpklcbqrgqg/Build/Intermediates/linkTest.build/Debug-iphonesimulator/linkTest.build

IOSbug调试-01-错误-duplicate symbols for architecture

不羁岁月 提交于 2019-12-10 05:23:36
错误-duplicate symbols for architecture i386 duplicate symbol _main in: /Users/mac/Library/Developer/Xcode/DerivedData/ItcastWeibo-ejradctorpweaxgnoyvyothlpxbj/Build/Intermediates/ItcastWeibo.build/Debug-iphonesimulator/ItcastWeibo.build/Objects-normal/i386/main-BCA160EE79D38D53.o /Users/mac/Library/Developer/Xcode/DerivedData/ItcastWeibo-ejradctorpweaxgnoyvyothlpxbj/Build/Intermediates/ItcastWeibo.build/Debug-iphonesimulator/ItcastWeibo.build/Objects-normal/i386/main-F335E396EB42357.o ld: 1 duplicate symbol for architecture i386 clang: error: linker command failed with exit code 1 (use -v to

MySQL的Replace into 与Insert into ..... on duplicate

霸气de小男生 提交于 2019-12-04 23:22:00
(1),没有key的时候,replace与insert .. on deplicate udpate相同。 (2),有key的时候,都保留主键值,并且auto_increment自动+1 不同之处:有key的时候,replace是delete老记录,而录入新的记录,所以原有的所有记录会被清除,这个时候,如果replace语句的字段不全的话,有些原有的比如例子中c字段的值会被自动填充为默认值。 而insert .. deplicate update则只执行update标记之后的sql,从表象上来看相当于一个简单的update语句。 但是实际上,根据我推测,如果是简单的update语句,auto_increment不会+1,应该也是先delete,再insert的操作,只是在insert的过程中保留除update后面字段以外的所有字段的值。 所以两者的区别只有一个, insert .. on deplicate udpate保留了所有字段的旧值,再覆盖然后一起insert进去,而replace没有保留旧值,直接删除再insert新值。 从底层执行效率上来讲,replace要比insert .. on deplicate update效率要高,但是在写replace的时候,字段要写全,防止老的字段数据被删除。 来源: oschina 链接: https://my.oschina.net

mysql "ON DUPLICATE KEY UPDATE" 语法

前提是你 提交于 2019-12-03 21:23:54
如果在INSERT语句末尾指定了ON DUPLICATE KEY UPDATE,并且插入行后会导致在一个UNIQUE索引或PRIMARY KEY中出现重复值,则在出现重复值的行执行UPDATE;如果不会导致唯一值列重复的问题,则插入新行。 例如,如果列 a 为 主键 或 拥有UNIQUE索引,并且包含值1,则以下两个语句具有相同的效果: INSERT INTO TABLE (a,c) VALUES (1,3) ON DUPLICATE KEY UPDATE c=c+1; UPDATE TABLE SET c=c+1 WHERE a=1; 如果行作为新记录被插入,则受影响行的值显示1;如果原有的记录被更新,则受影响行的值显示2。 这个语法还可以这样用: 如果INSERT多行记录(假设 a 为主键或 a 是一个 UNIQUE索引列): 1.INSERT INTO TABLE (a,c) VALUES (1,3),(1,7) ON DUPLICATE KEY UPDATE c=c+1; 执行后, c 的值会变为 4 (第二条与第一条重复, c 在原值上+1). 2.INSERT INTO TABLE (a,c) VALUES (1,3),(1,7) ON DUPLICATE KEY UPDATE c=VALUES(c); 执行后, c 的值会变为 7 (第二条与第一条重复, c

mysql一次更新多条不同的记录

落花浮王杯 提交于 2019-12-03 21:23:41
  最近oschina上又有朋友问到了mysql中一次更新多条不同的记录的方法,我知道的方法有两种,使用on duplicate key update语法和使用 replace into语法。   这两个语法都需要主键索引或唯一索引支持,下面举例说明。   测试用的表结构和数据 CREATE TABLE `t` ( `id` int(11) NOT NULL AUTO_INCREMENT, `c1` varchar(50) NOT NULL DEFAULT '', `c2` varchar(50) NOT NULL DEFAULT '', `c3` varchar(50) NOT NULL DEFAULT '', PRIMARY KEY (`id`), UNIQUE KEY `c1` (`c1`) ) ENGINE=InnoDB AUTO_INCREMENT=125 DEFAULT CHARSET=utf8 ; insert into t values(1,2,3,4),(5,6,7,8); on duplicate key update 语法   on duplicate key update 语法的官方说明 http://docs.oracle.com/cd/E17952_01/refman-5.1-en/insert-on-duplicate.html If you

mysql insert语法注意事项(ON DUPLICATE KEY UPDATE )

蹲街弑〆低调 提交于 2019-12-02 17:49:28
mysql insert语法注意事项(ON DUPLICATE KEY UPDATE ) INSERT 语法 INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE] [INTO] tbl_name [(col_name,...)] VALUES ({expr | DEFAULT},...),(...),... [ ON DUPLICATE KEY UPDATE col_name=expr, ... ] 或: INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE] [INTO] tbl_name SET col_name={expr | DEFAULT}, ... [ ON DUPLICATE KEY UPDATE col_name=expr, ... ] 或: INSERT [LOW_PRIORITY | HIGH_PRIORITY] [IGNORE] [INTO] tbl_name [(col_name,...)] SELECT ... [ ON DUPLICATE KEY UPDATE col_name=expr, ... ] 一、 DELAYED 使用延迟插入操作 DELAYED 调节符应用于 INSERT 和 REPLACE 语句。当 DELAYED

mysql on duplicate update 语法

送分小仙女□ 提交于 2019-12-01 09:34:47
mysql "ON DUPLICATE KEY UPDATE" 语法 如果在INSERT语句末尾指定了ON DUPLICATE KEY UPDATE,并且插入行后会导致在一个UNIQUE索引或PRIMARY KEY中出现重复值,则在出现重复值的行执行UPDATE;如果不会导致唯一值列重复的问题,则插入新行。 例如,如果列 a 为 主键 或 拥有UNIQUE索引,并且包含值1,则以下两个语句具有相同的效果: 复制代码 代码如下: INSERT INTO TABLE (a,c) VALUES (1,3) ON DUPLICATE KEY UPDATE c=c+1; UPDATE TABLE SET c=c+1 WHERE a=1; 如果行作为新记录被插入,则受影响行的值显示1;如果原有的记录被更新,则受影响行的值显示2。 这个语法还可以这样用: 如果INSERT多行记录(假设 a 为主键或 a 是一个 UNIQUE索引列): 复制代码 代码如下: INSERT INTO TABLE (a,c) VALUES (1,3),(1,7) ON DUPLICATE KEY UPDATE c=c+1; 执行后, c 的值会变为 4 (第二条与第一条重复, c 在原值上+1). 复制代码 代码如下: INSERT INTO TABLE (a,c) VALUES (1,3),(1,7) ON