MySql常用语句

创建表

-- 创建表,并带上从1开始自增的主键id
CREATE TABLE table_name(
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `top_parent_id` varchar(10)   DEFAULT NULL COMMENT '厂区t3\\t4\\t5',
  `title` varchar(50) DEFAULT NULL COMMENT '区域',
  `model` varchar(50) DEFAULT NULL COMMENT '化学品名称',
  `entry` varchar(50)   DEFAULT NULL COMMENT 'tank编号',
  PRIMARY KEY (`id`)
)  ENGINE=INNODB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 

查看表

SHOW CREATE TABLE report_jiejing_exh

增加字段

# 在第一位添加字段site,设置默认值't5'
ALTER TABLE report_jiejing_exh ADD site VARCHAR(10) NOT NULL DEFAULT 't5' FIRST;
# 在指定字段后面增加字段
ALTER TABLE 'stu' ADD 'age' INT NOT NULL AFTER 'name' COMMENT '备注';

修改字段位置

ALTER TABLE 'tablename' MODIFY 'name' VARCHAR(20) AFTER|FIRST columnName ;

修改字段类型

ALTER TABLE report_jiejing_exh MODIFY title VARCHAR(64);
ALTER TABLE report_jiejing_exh MODIFY model VARCHAR(64);
ALTER TABLE report_jiejing_exh MODIFY entry VARCHAR(64);

表名查字段

 SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'warning_setting'; 

删除字段

 alter table report_jiejing_exh drop column site;

查询存储过程里面出现的字符串

SELECT * FROM information_schema.routines
WHERE routine_type = 'PROCEDURE' 
AND UPPER(routine_definition) LIKE '%REPORT_JIEJING_EXH%';

字符串拼接

SELECT CONCAT('2024','-','01','-','01')

字符串替换

-- 把所有的#替换成_
SELECT REPLACE('W#8_AL_STR_AIN_LT02_001', '#', '_') ;
-- 把字符串的第二位替换成_
select CONCAT(SUBSTRING('W#8_AL_STR_AIN_LT02_001', 1, 1), '_', SUBSTRING('W#8_AL_STR_AIN_LT02_001', 3));

日期转字符串

SELECT DATE_FORMAT(NOW(),'%Y'), 
DATE_FORMAT(NOW(),'%Y%m'), 
DATE_FORMAT(NOW(),'%Y%m%d'),
DATE_FORMAT(NOW(),'%Y-%m-%d'),
DATE_FORMAT(NOW(),'%Y-%m-%d %H'),
DATE_FORMAT(NOW(),'%Y-%m-%d %H:%M:%S')

日期加减

-- 加一天
SELECT DATE_ADD('2024-02-29',INTERVAL 1 DAY);
SELECT DATE_SUB('2024-02-29',INTERVAL -1 DAY);
-- 减一天
SELECT DATE_ADD('2024-02-29',INTERVAL -1 DAY);
SELECT DATE_SUB('2024-02-29',INTERVAL 1 DAY);

判断字符串是否包含另一个字符串

select instr('马斯克','马')

查看版本

SELECT @@version;

创建存储过程

DELIMITER $$

USE `ems`$$

DROP PROCEDURE IF EXISTS `report_chem_day`$$

CREATE DEFINER=`root`@`%` PROCEDURE `report_chem_day`(IN `dateTimekey` VARCHAR(20))
    COMMENT '#备注'
BEGIN 
   DECLARE pv_t3 FLOAT; #参数
   DECLARE pv_t4 FLOAT; #参数
   
   SET dateTimekey = LOWER(dateTimekey); #输入参数转为小写
   select 't4' into pv_t3 ;
   select 2 into pv_t4 ;
   update Report_Used_Param set site = pv_t3 where id = pv_t4;
   
   IF(dateTimekey='' OR dateTimekey='2024-01-01') THEN
     
   update Report_Used_Param set site = pv_t3 where id = pv_t4;
 
    END IF;	
 
END$$

DELIMITER ;

报错

The total number of locks exceeds the lock table size

  • MySQL的临时表过小也就是tmp_table_size
  • MySQL的innod缓冲池过小也就是innodb_buffer_pool_size
--查看缓存
show global variables like "%tmp%";
SHOW global VARIABLES LIKE '%innodb_buffer_pool_size%';
--临时设置缓存
SET GLOBAL innodb_buffer_pool_size=1024*1024*1024
SET GLOBAL tmp_table_size =1024*1024*1024

参考自:https://blog.csdn.net/weixin_42096792/article/details/118146269

  • 7
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值