加入收藏 | 设为首页 | 会员中心 | 我要投稿 威海站长网 (https://www.0631zz.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

Mysql实用命令建表/分区/加索引/条件删除与条件新增

发布时间:2022-10-16 21:31:49 所属栏目:MySql教程 来源:未知
导读: 1、创建表通用sql
CREATE TABLE `ext_base_config` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
`description` varchar(200) DEFAULT NULL COMMENT '字段表述

1、创建表通用sql

CREATE TABLE `ext_base_config` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
`description` varchar(200) DEFAULT NULL COMMENT '字段表述',
  `update_by` varchar(200) DEFAULT NULL COMMENT '更新者',
  `create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  PRIMARY KEY (`id`) USING BTREE
)  COMMENT='通用表';

对于数据量比较大的mysql索引表,可以添加索引和分区

添加普通索引:

aLTER TABLE `ext_moneybase_daily` ADD INDEX index2 ( trade_date )

添加联合索引

aLTER TABLE `ext_moneybase_daily` ADD INDEX index3 ( ts_code,trade_date )

用数字的列添加Hash索引

ALTER TABLE ext_moneybase_daily PARTITION BY HASH (id) PARTITIONS 100 ;

#查看分区

SELECT

partition_name part,

partition_expression expr,

partition_description descr,

table_rows

FROM information_schema.partitions WHERE

table_schema = SCHEMA()

AND table_name='ext_moneybase_daily';

通过查询条件并删除

select 和 in 不能直接使用,需要外面包一个壳,demo如下:

delete from ext_moneybase_daily where trade_date in (

SELECT MAX(a.cal_date) AS trade_date FROM (

select cal_date from ext_moneybase_trade_cal s1

left join(

select trade_date,count(*) dcount from ext_moneybase_daily group by trade_date

) s2 on s1.cal_date=s2.trade_date

where s1.amount!=s2.dcount

) AS a GROUP BY a.cal_date

)

更新数据demo

update ext_moneybase_trade_cal set isdo='2' where isdo='1' and cal_date not in(

select distinct trade_date from ext_moneybase_daily

)

(编辑:威海站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!