space107

  • 首页
  • 文章分类
    • 后端汇总
    • 运维汇总
    • 数据库汇总
space107的个人分享博客
  1. 首页
  2. 文章分类
  3. 数据库汇总
  4. 正文

分库分表初始化建表

2025年7月28日 21点热度 0人点赞 0条评论

mysql分库分表的建库建表

假设场景使用shareing-jdbc 实现分库分表,版本大于5.7,存储节点为1

1.初始化建库

-- 1. 先删除存储过程
DROP PROCEDURE IF EXISTS `create_databases`;
-- 2. 结束符改为$
DELIMITER $
-- 3. 创建存储过程
CREATE PROCEDURE create_databases ()
BEGIN
DECLARE `@i` INT (11);
DECLARE `@createSql` VARCHAR (2560);
SET `@i` = 10;
WHILE `@i` < 32 DO -- 创建32个库
-- 创建库
SET @createSql = CONCAT( "CREATE DATABASE IF NOT EXISTS contrimetrics_", `@i`, " DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;" );
PREPARE stmt FROM @createSql;
EXECUTE stmt;
SET `@i` = `@i` + 1;
END WHILE;
END $
-- 4. 结束符改为;
DELIMITER ;
-- 5. 执行存储过程
CALL `create_databases`();
-- 6. 删除存储过程
DROP PROCEDURE IF EXISTS `create_databases`;

2.初始化建表

-- 1. 先删除存储过程
DROP PROCEDURE IF EXISTS `create_tables`;
-- 2. 结束符改为$
DELIMITER $
-- 3. 创建存储过程
CREATE PROCEDURE create_tables ()
BEGIN
DECLARE `@dbi` INT (11);
DECLARE `@usedb` VARCHAR (2500);
-- 不能在 while中声明变量,只能在begin第一句声明变量
DECLARE `@i` INT (11);
DECLARE `@createSql` VARCHAR (25600);

-- 数据库在哪里开始
SET `@dbi` = 10;

WHILE `@dbi` < 32 DO -- 使用数据库
--  set @userdb = CONCAT("USE contrimetrics_",`@dbi`,";");
--   PREPARE stmt FROM @userdb;
--  EXECUTE stmt;
--  DEALLOCATE PREPARE stmt;

    SET `@i` = 0;
    WHILE `@i` < 32 DO -- 创建x张表
    -- 创建表
    SET @createSql = CONCAT("CREATE TABLE IF NOT EXISTS ","contrimetrics_",`@dbi`,".","original_wos_data_", `@i`, " (
    `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `publication_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
  `authors_a` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL,
  `book_authors` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
  `book_editors` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
  `book_group_authors` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
  `author_full_names` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL,
  `book_author_full_names` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
  `group_authors` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL,
  `article_title` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL,
  `Source_title` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL,
  `book_series_title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
  `book_series_subtitle` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
  `language_l` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
  `document_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
  `conference_title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
  `conference_date` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
  `conference_location` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
  `conference_sponsor` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL,
  `conference_host` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
  `author_keywords` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL,
  `keywords_plus` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL,
  `abstract_a` mediumtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL,
  `addresses_a` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL,
  `affiliations_a` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL,
  `reprint_addresses` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL,
  `email_addresses` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL,
  `researcher_ids` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL,
  `orcds` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL,
  `funding_orgs` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL,
  `funding_name_preferred` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL,
  `funding_text` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL,
  `cited_references` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
  `cited_reference_count` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
  `times_cited_wos_core` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
  `times_cited_all_databases` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
  `day_usage_count` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
  `since_usage_count` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
  `publisher_p` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
  `publisher_city` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
  `publisher_address` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
  `issn_i` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
  `eissn_e` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
  `isbn_i` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
  `journal_abbreviation` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
  `journal_iso_abbreviation` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
  `publication_date` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
  `publication_year` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
  `volume_v` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
  `issue_i` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
  `part_number` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
  `supplement` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
  `special_issue` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
  `meeting_abstract` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
  `start_page` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
  `end_page` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
  `article_number` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
  `doi_d` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
  `doi_link` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL,
  `book_doi` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
  `early_access_date` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
  `number_of_pages` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
  `wos_categories` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL,
  `web_of_science_index` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL,
  `research_areas` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL,
  `ids_number` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
  `pubmed_id` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
  `open_access_designations` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
  `highly_cited_status` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
  `hot_paper_status` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
  `date_of_export` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
  `unique_wos_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
  `year_a` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
  `year_b` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
  `web_of_science_record` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
  `spare_field_o` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
  `spare_field_t` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
  `spare_field_s` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
  `create_date` timestamp(0) NULL DEFAULT CURRENT_TIMESTAMP(0),
  `modify_date` timestamp(0) NULL DEFAULT NULL,
  `sts` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT 'Y',
  PRIMARY KEY (`id`) USING BTREE,
  INDEX `Source_title_index`(`Source_title`(191)) USING BTREE,
  INDEX `unique_wos_id_index`(`unique_wos_id`) USING BTREE,
  INDEX `DOISELECT`(`doi_d`(191)) USING BTREE,
  INDEX `artbic`(`article_title`(191)) USING BTREE
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
    " );
    PREPARE stmt FROM @createSql;
    EXECUTE stmt;
    SET `@i` = `@i` + 1;
    END WHILE;

SET `@dbi` = `@dbi` + 1;
END WHILE;

END $
-- 4. 结束符改为;
DELIMITER ;
-- 5. 执行存储过程
CALL `create_tables`();
-- 6. 删除存储过程
DROP PROCEDURE IF EXISTS `create_tables`;
标签: 暂无
最后更新:2025年7月28日

space107

技术分享+知识汇总

点赞

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复

归档

  • 2025 年 7 月

分类

  • 后端汇总
  • 数据库汇总
  • 运维汇总
最新 热点 随机
最新 热点 随机
docker离线安装 分库分表初始化建表 jdk增加ca证书 es数据库迁移 阿里云oss方案 ssh升级更新(qilin) 布隆过滤器原理 以及使用常见
docker离线安装 分库分表初始化建表 ssh升级更新(qilin) jdk增加ca证书 布隆过滤器原理 以及使用常见 基于springboot的接口防刷

COPYRIGHT © 2025 space107. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

豫ICP备2025140917号-1