热点
UX视角:编程语言、函数与变量控制核心技巧,reasoning_content:我们要求以用户体验设计师的口吻,写一个与“技术、科技”相关,关于“互联网创业编程核心:语言选择、函数运用与变量控制技巧”的标题需要简短精炼,30字以内直接输出标题,不要额外说明nn考虑到用户体验设计师视角,标题可以强调用户体验与技术选择的关系,但核心是编程核心可能结合“体验”、“设计”、“高效”等词例如:“从用户出发:编程语言与函数变量优化秘籍” 但需要更精炼nn建议“创业编程核心:语言、函数与变量的用户体验设计” 但字数可能超或者“用户视角:编程语言、函数与变量控制技巧” 20字左右nn再想:用户体验设计师通常关注直觉、流畅、易用可以写:“直觉式编程:语言选择、函数与变量控制的艺术” 但可能偏离nn更直接:“互联网创业:编程语言、函数与变量控制秘诀” 但缺少用户体验元素nn要求是“以用户体验设计师的口吻”,所以标题中应体现设计师身份例如:“用户体验设计师教你:编程语言、函数与变量控制技巧” 但字数可能超(22字?算一下:“用户体验设计师教你:编程语言、函数与变量控制技巧” 共20个中文字?不,标点算吗?实际“用户体验设计师教你:编程语言、函数与变量控制技巧” 共22个汉字字符可以接受30字内但可能不够精炼nn另一个:“设计思维编程:语言、函数与变量控制核心” 13字nn或者:“从体验到代码:语言、函数与变量控制技巧” 14字nn考虑要求“与‘技术、科技’相关”,标题本身是科技内容最佳:“UX视角:编程语言、函数与变量控制核心技巧” 18字其中“UX”是用户体验缩写,符合nn直接输出
5G安全新生态:护航移动互联未来,reasoning_content:我们要求以网络安全工程师的口吻,写一个与“技术、科技”相关,关于“5G技术引领未来,构建移动互联新生态”的标题需要直接输出一个标题,不要加说明提示等,字数控制在30字以内nn思考:网络安全工程师的口吻,可能会强调安全、防护、信任、边界等角度但标题要围绕“5G技术引领未来,构建移动互联新生态”,所以需要结合5G和网络安全可能的标题如:“5G新生态:筑牢移动互联安全防线”或“5G赋能未来,安全护航新生态”注意字数限制nn简洁:5G安全新生态,护航移动互联未来或者:5G技术引领未来,安全构建新生态但需要体现网络安全工程师视角nn最佳:5G未来,安全为基——构建移动互联新生态但字数?可能超更短:5G新生态:安全护航互联未来字数:11字或者:5G安全:构建移动互联新生态字数12字或者:5G技术引领,安全筑牢新生态字数14字nn用网络安全工程师口吻,可以加“守护”、“防线”等例如:5G引领未来,安全守护新生态或者:5G新生态,安全工程师的守护nn但标题需要是完整的我想到一个:5G未来,安全先行——构建移动互联新生态字数:18字符合nn或者:5G技术引领,安全构建互联新生态字数:16字nn最终选择一个:5G安全新生态:护航移动互联未来字数:13字
16 9 月 2026, 周三

Insert为0的记录导致数据混乱应当怎么办

Insert为0的记录导致数据混乱该怎么办,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
 
 
环境.MySQL 5.6.14
SQL_Mode:STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION
 
生产环境 配置表,设置主键为自增.
一天某同学让我帮忙从测试导一批数据到生产.
虽然我对这种方式深恶痛绝,但是没有办法..也只能照做.
导入之后的第二天,业务发现很多生产数据错乱了。
这个礼物的配置表,主键原本设计成自增主键.
但是后来他们用0表示一种特殊礼物...坑就在这里了。
 
过程模拟
 
 
drop table if exists config_gift;
create table config_gift(
    GiftID int not null primary key auto_increment,
    GiftName varchar(32) not null
) auto_increment=50000;
insert into config_gift(GiftName) select '鲜花';
insert into config_gift(GiftName) select '鞭炮';
insert into config_gift(GiftName) select '福袋';
select * from config_gift;
当时的SQL_Mode是:STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION
 
如果这时执行如下的语句,
insert into config_gift select 0,'蛋糕';
insert into config_gift select null,'香水';
 
查看结果竟然如下:
 
MySQL 如果已经设置了主键自动增长,但是后来却 插入 0 或者 null 作为主键值的话, MySQL会用自增长的值,取代原本的 0 或者 null 。
 
业务代码中写死了 0 这个礼物ID的判断,所以导致了大量数据错乱,花了很长时间修正.
 
这种事情猝不及防
业务方定的这个特殊礼物就用0表示,而且也没有人来通知数据库...
数据上线的时候,都是一批数据,人力甄别数据似乎也不现实.
 
在自增主键下,处理主键为0的数据
set @@session.sql_mode='STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION,no_auto_value_on_zero'
 
 
修改Global和Session级别的SQL_mode之后,主键为0的礼物可以正确插入了。
Insert为0的记录导致数据混乱该怎么办
 
主要注意的是,即使在这个SQL_mode下(STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION,no_auto_value_on_zero)
 
自增主键,Insert主键为null的数据,还是会使用自增主键的值作为主键,而不是报错。
 
关于Insert为0的记录导致数据混乱该怎么办问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注亿速云行业资讯频道了解更多相关知识。

dawei

【声明】:毕节站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。

您错过了

UX视角:编程语言、函数与变量控制核心技巧,reasoning_content:我们要求以用户体验设计师的口吻,写一个与“技术、科技”相关,关于“互联网创业编程核心:语言选择、函数运用与变量控制技巧”的标题需要简短精炼,30字以内直接输出标题,不要额外说明nn考虑到用户体验设计师视角,标题可以强调用户体验与技术选择的关系,但核心是编程核心可能结合“体验”、“设计”、“高效”等词例如:“从用户出发:编程语言与函数变量优化秘籍” 但需要更精炼nn建议“创业编程核心:语言、函数与变量的用户体验设计” 但字数可能超或者“用户视角:编程语言、函数与变量控制技巧” 20字左右nn再想:用户体验设计师通常关注直觉、流畅、易用可以写:“直觉式编程:语言选择、函数与变量控制的艺术” 但可能偏离nn更直接:“互联网创业:编程语言、函数与变量控制秘诀” 但缺少用户体验元素nn要求是“以用户体验设计师的口吻”,所以标题中应体现设计师身份例如:“用户体验设计师教你:编程语言、函数与变量控制技巧” 但字数可能超(22字?算一下:“用户体验设计师教你:编程语言、函数与变量控制技巧” 共20个中文字?不,标点算吗?实际“用户体验设计师教你:编程语言、函数与变量控制技巧” 共22个汉字字符可以接受30字内但可能不够精炼nn另一个:“设计思维编程:语言、函数与变量控制核心” 13字nn或者:“从体验到代码:语言、函数与变量控制技巧” 14字nn考虑要求“与‘技术、科技’相关”,标题本身是科技内容最佳:“UX视角:编程语言、函数与变量控制核心技巧” 18字其中“UX”是用户体验缩写,符合nn直接输出