扬州品牌网站设计,合肥市门户网站,成都做网站设计公司价格,北京网站设计推荐刻问题#xff1a;
线上注册失败#xff0c;线下测试环境没问题 update t_authentication_code set invalid 0,update_time sysdate() where email ‘XXX’ and code ‘XXX’ and invalid 1; 同样的sql#xff0c;线下执行成功#xff0c;线上却一直没有修改成功
分析…问题
线上注册失败线下测试环境没问题 update t_authentication_code set invalid 0,update_time sysdate() where email ‘XXX’ and code ‘XXX’ and invalid 1; 同样的sql线下执行成功线上却一直没有修改成功
分析
排除其他原因后最后发现线上mysql的版本是mysql8而线下测试数据库是mysql5。
再看建表语句果然也不一样尤其是排序规则
线上
CREATE TABLE t_authentication_code (id int(10) unsigned NOT NULL AUTO_INCREMENT,email varchar(255) DEFAULT NULL,code varchar(16) DEFAULT NULL,invalid int(10) unsigned DEFAULT 0,create_time datetime DEFAULT NULL COMMENT 创建时间,expire_time datetime DEFAULT NULL COMMENT 失效时间,update_time datetime DEFAULT NULL,PRIMARY KEY (id)
) ENGINEInnoDB AUTO_INCREMENT123 DEFAULT CHARSETutf8mb4 COLLATEutf8mb4_0900_ai_ci;线下
CREATE TABLE t_authentication_code (id int(10) NOT NULL AUTO_INCREMENT,email varchar(255) COLLATE utf8mb4_bin DEFAULT NULL,code varchar(16) COLLATE utf8mb4_bin DEFAULT NULL,invalid int(10) unsigned DEFAULT 0,create_time datetime DEFAULT NULL COMMENT 创建时间,expire_time datetime DEFAULT NULL COMMENT 失效时间,update_time datetime DEFAULT NULL,PRIMARY KEY (id)
) ENGINEInnoDB AUTO_INCREMENT73 DEFAULT CHARSETutf8mb4 COLLATEutf8mb4_bin;解决
线上重新按线下的建表语句建表即可。
这个就是开发人员疏忽导致的。 线上线下要保证使用一样的数据库版本一样的建表语句测试环境才能真正起作用。