解决不能在mysql唯一索引使用函数问题
发表于|更新于
|浏览量:
我们在伤害别人之前,要想到别人也会同样伤害我们。——达·芬奇
遇到不能在mysql唯一索引使用函数问题
可以使用虚拟列,例如下面的例子
1 | # 添加虚拟列,为`date`字段格式化为月计算出来得到`month`字段 |
相关推荐
2022-02-06
INSERT ... ON DUPLICATE KEY UPDATE Statement
打开mysql文档,总会有新发现。——碧安瑶 我们在使用INSERT语句时,有时会有这样的需求,不存在就新增,存在就更新 此时我们可以使用INSERT ... ON DUPLICATE KEY UPDATE语句 就像mysql官方文档中提到的那样,我们如果将a列设为UNIQUE唯一索引或者主键时,并且当前表已经存在了a=1的数据,对于这种情况,下面两条sql的结果是相等的 当然如果不满足上方条件,则会新增一条数据 1234INSERT INTO t1 (a,b,c) VALUES (1,2,3) ON DUPLICATE KEY UPDATE c=c+1;UPDATE t1 SET c=c+1 WHERE a=1; 对于InnoDB引擎的表,此处的新增可能会触发自增列,但修改操作不会触发 如果上方的唯一索引再加一个b列,则上方第一条sql和下方sql结果相等 1UPDATE t1 SET c=c+1 WHERE a=1 OR b=2 LIMIT 1; 注意如果此处a=1 or b=2匹配多行,则只会更新一行,所以我们需要避免在有多个唯一索引的表上使用本语法 我们在表内没...
2022-02-10
mysql数据库信息函数
我将仇恨写在冰上,然后期待太阳的升起。——加西亚马尔克斯 打开mysql官方文档:Information Functions 可以看到mysql查询库表信息的函数 Name Description BENCHMARK() Repeatedly execute an expression CHARSET() Return the character set of the argument COERCIBILITY() Return the collation coercibility value of the string argument COLLATION() Return the collation of the string argument CONNECTION_ID() Return the connection ID (thread ID) for the connection CURRENT_ROLE() Return the current active roles CURRENT_USER(), CURRENT_USER...
2022-09-22
对mysql存时间坑
夫妻间应由互相认识而了解,进而由彼此容忍而敬爱,才能维持一个美满的婚姻——巴尔扎克 今天发现一个问题,mysql中时间戳过大,会自动到下一天。。。 可以将毫秒值设置为0再存入,之后正常
2023-04-27
SUBSTRING_INDEX
天下兴亡,匹夫有责——顾炎武 分享一个函数 SUBSTRING_INDEX 1SUBSTRING_INDEX( your_column , char, 1 ) 可以像split一样截取片段 例如 1SUBSTRING_INDEX( '1.00' ,'.',1 ) 得到1 例如 1SUBSTRING_INDEX( '1.00' ,'.',-1 ) 得到00
2022-02-22
mysql导出导入
成熟意味着停止展示自己并学会隐藏自己。——《失踪的孩子》 官方文档:https://dev.mysql.com/doc/refman/8.0/en/backup-and-recovery.html 我们可以使用mysql自带的导出工具mysqldump进行导出,我们进入到mysql的bin目录,运行命令 1mysqldump -u[用户名] -p --default-character-set=[编码格式] --databases [数据库名] > [导出路径] 例如我此处的: 1mysqldump -uroot -p --default-character-set=utf8 --databases test > D:\file\tmp\xxx.sql 输入完毕后需要输入密码,我们输入就行了 然后我们可以在mysql客户端中使用source命令,首先连接mysql 1mysql -uroot -p 输入密码后我们切换到想导入的数据库 1use test; 然后使用source 1source D:/file/tmp/xxx.sql; 注意反斜杠转义问题...
2021-12-03
mysql重置自增主键坑
商人的兴趣就在那些能找到财富的地方。——埃伯克 今天重置mysql自增主键时遇到个坑,明明sql执行了 1ALTER TABLE table_name AUTO_INCREMENT= 1; 但还是修改失败了 后来发现原来是因为当前表最大id比我设置的自增id大导致的 而且这种情况还不报错,提示sql正常执行,就挺坑的 最后把表内数据调整了,成功重置自增id 可以通过 1SHOW TABLE STATUS WHERE NAME = 'user'; 查看表状态

阿超
我的名字叫阿超 年龄25岁 家在北京市 职业是软件开发 每天最晚也会在八点前回家 不抽烟 酒浅尝辄止 晚上十二点上床 保证睡足八个小时 睡前写一篇博客 再做二十分钟俯卧撑暖身 然后再睡觉 基本能熟睡到天亮 像婴儿一样不留下任何疲劳和压力 就这样迎来第二天的早晨 健康检查结果也显示我很正常 我想说明我是一个不论何时都追求内心平稳的人 不拘泥于胜负 不纠结于烦恼 不树立使我夜不能寐的敌人 这就是我在这社会的生活态度
Follow Me公告
This is my Blog