三个主流数据库(Oracle、MySQL和SQL Server)的“单表造数

这篇具有很好参考价值的文章主要介绍了三个主流数据库(Oracle、MySQL和SQL Server)的“单表造数。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.oracle

创建表

CREATE TABLE "YZH2_ORACLE" (
  "VARCHAR2_COLUMN" VARCHAR2(20) NOT NULL ENABLE,
  "NUMBER_COLUMN" NUMBER,
  "DATE_COLUMN" DATE,
  "CLOB_COLUMN" CLOB,
  "BLOB_COLUMN" BLOB,
  "BINARY_DOUBLE_COLUMN" BINARY_DOUBLE,
  "BINARY_FLOAT_COLUMN" BINARY_FLOAT,
  "CHAR_COLUMN" CHAR(1),
  "CHAR_VARYING_COLUMN" VARCHAR2(20),
  "DEC_COLUMN" NUMBER(*, 0),
  "DECIMAL_COLUMN" NUMBER(*, 0),
  "DOUBLE_PRECISION_COLUMN" FLOAT(126),
  "CHARACTER_COLUMN" CHAR(1),
  "CHARACTER_VARYING_COLUMN" VARCHAR2(20),
  "FLOAT_COLUMN" FLOAT(126),
  "INT_COLUMN" NUMBER(*, 0),
  "INTEGER_COLUMN" NUMBER(*, 0),
  "NATIONAL_CHAR_COLUMN" NCHAR(1),
  "NATIONAL_CHAR_VARYING_COLUMN" NVARCHAR2(20),
  "NATIONAL_CHARACTER_COLUMN" NCHAR(1),
  "NATIONAL_CHARACTER_VARY_COLUMN" NVARCHAR2(20),
  "NCHAR_COLUMN" NCHAR(1),
  "NCHAR_VARYING_COLUMN" NVARCHAR2(20),
  "NCLOB_COLUMN" NCLOB,
  "NUMERIC_COLUMN" NUMBER(*, 0),
  "NVARCHAR2_COLUMN" NVARCHAR2(20),
  "RAW_COLUMN" RAW(20),
  "REAL_COLUMN" FLOAT(63),
  "SMALLINT_COLUMN" NUMBER(*, 0),
  "TIMESTAMP_COLUMN" TIMESTAMP (6),
  "VARCHAR_COLUMN" VARCHAR2(20)
  )

三个主流数据库(Oracle、MySQL和SQL Server)的“单表造数,oracle,数据库

预设游标10000(必要时)

alter system set open_cursors = 10000;

 模拟新增10万条数据




DECLARE I number := 0; 
BEGIN 
  FOR I IN 0..100000 LOOP 
    INSERT INTO YZH2_ORACLE (
        VARCHAR2_COLUMN, NUMBER_COLUMN, BINARY_DOUBLE_COLUMN,
      BINARY_FLOAT_COLUMN, CHAR_VARYING_COLUMN,
      DEC_COLUMN, DECIMAL_COLUMN, DOUBLE_PRECISION_COLUMN,
      CHARACTER_VARYING_COLUMN, FLOAT_COLUMN,
      INT_COLUMN, INTEGER_COLUMN, NATIONAL_CHAR_VARYING_COLUMN,
      NATIONAL_CHARACTER_VARY_COLUMN,
      NCHAR_VARYING_COLUMN, NUMERIC_COLUMN,
      NVARCHAR2_COLUMN, REAL_COLUMN, SMALLINT_COLUMN,
      VARCHAR_COLUMN
    )
    VALUES (I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I,I, I, I, I); 
  END LOOP; 
  COMMIT; 
END;

三个主流数据库(Oracle、MySQL和SQL Server)的“单表造数,oracle,数据库

 三个主流数据库(Oracle、MySQL和SQL Server)的“单表造数,oracle,数据库

 1.1 oracle一条sql数据生成100万条数据

SELECT
	rownum AS id,
	to_char(sysdate + rownum / 24 / 3600, 'yyyy-mm-dd hh24:mi:ss') AS inc_datetime,
	trunc(dbms_random.value(0, 100)) AS random_id,
	dbms_random.string('x',20) AS random_string
FROM
	dual
CONNECT BY
	LEVEL <= 1000000;  #可传参数

 三个主流数据库(Oracle、MySQL和SQL Server)的“单表造数,oracle,数据库

三个主流数据库(Oracle、MySQL和SQL Server)的“单表造数,oracle,数据库

三个主流数据库(Oracle、MySQL和SQL Server)的“单表造数,oracle,数据库

2.SQL SERVER

创建测试表

CREATE TABLE dbo.yzh2_ms_checker (
  BIGINT_COLUMN bigint NULL DEFAULT (NULL),
  BINARY_COLUMN binary(64) NULL DEFAULT (NULL),
  BIT_COLUMN bit NULL DEFAULT (NULL),
  CHAR_COLUMN char(64) NULL DEFAULT (NULL),
  CHAR_MAX_COLUMN char(128) NULL DEFAULT (NULL),
  DATE_COLUMN date NULL DEFAULT (NULL),
  DATETIME_COLUMN datetime NULL DEFAULT (NULL),
  DECIMAL_COLUMN decimal(18,0) NULL DEFAULT (NULL),
  FLOAT_COLUMN real NULL DEFAULT (NULL),
  INT_COLUMN int NULL DEFAULT (NULL),
  MONEY_COLUMN money NULL DEFAULT (NULL),
  NCHAR_COLUMN nchar(64) NULL DEFAULT (NULL),
  NCHAR_MAX_COLUMN nchar(128) NULL DEFAULT (NULL),
  NTEXT_COLUMN ntext NULL DEFAULT (NULL),
  NUMERIC_COLUMN numeric(18,0) NULL DEFAULT (NULL),
  NVARCHAR_COLUMN nvarchar(64) NULL DEFAULT (NULL),
  NVARCHAR_MAX_COLUMN nvarchar(128) NULL DEFAULT (NULL),
  REAL_COLUMN real NULL DEFAULT (NULL),
  SMALLINT_COLUMN smallint NULL DEFAULT (NULL),
  SMALLMONEY_COLUMN smallmoney NULL DEFAULT (NULL),
  TEXT_COLUMN text NULL DEFAULT (NULL),
  TINYINT_COLUMN tinyint NULL DEFAULT (NULL),
  VARBINARY_COLUMN varbinary(64) NULL DEFAULT (NULL),
  VARCHAR_COLUMN varchar(64) NULL DEFAULT (NULL),
  VARCHAR_MAX_COLUMN varchar(128) NULL DEFAULT (NULL),
  XML_COLUMN xml NULL DEFAULT (NULL)
);
GO

三个主流数据库(Oracle、MySQL和SQL Server)的“单表造数,oracle,数据库


DECLARE @i INT
SET
    @i = 1 
WHILE @i <=30000 BEGIN

INSERT INTO dbo.yzh2_ms_checker (
    BIGINT_COLUMN, BINARY_COLUMN, BIT_COLUMN,
    CHAR_COLUMN, CHAR_MAX_COLUMN, DATE_COLUMN,
    DATETIME_COLUMN, DECIMAL_COLUMN,
    FLOAT_COLUMN, INT_COLUMN, MONEY_COLUMN,
    NCHAR_COLUMN, NCHAR_MAX_COLUMN,
    NTEXT_COLUMN, NUMERIC_COLUMN, NVARCHAR_COLUMN,
    NVARCHAR_MAX_COLUMN, REAL_COLUMN,
    SMALLINT_COLUMN, SMALLMONEY_COLUMN,
    TEXT_COLUMN, TINYINT_COLUMN, VARBINARY_COLUMN,
    VARCHAR_COLUMN, VARCHAR_MAX_COLUMN,
    XML_COLUMN
  )
VALUES
  (
    @i,1,@i,@i,@i,GETDATE(),GETDATE(),@i,@i,@i,@i,@i,@i,STR(@i),
    @i,STR(@i),STR(@i),@i,@i,@i,STR(@i),NULL,1,@i,@i,STR(@i)
  )

SET @i = @i + 1 
END;

三个主流数据库(Oracle、MySQL和SQL Server)的“单表造数,oracle,数据库

三个主流数据库(Oracle、MySQL和SQL Server)的“单表造数,oracle,数据库

3.MySQL

创建测试表
CREATE TABLE `yzh2_sync` (
  `bigint_column` bigint(10) NOT NULL  AUTO_INCREMENT COMMENT '1',
  `bit_column` bigint(10) NOT NULL COMMENT '2',
  `blob_column` blob NOT NULL COMMENT '3',
  `char_column` char(64) NOT NULL COMMENT '4',
  `date_column` date NOT NULL COMMENT '5',
  `datetime_column` datetime NOT NULL COMMENT '6',
  `decimal_column` decimal(18,9) NOT NULL COMMENT '7',
  `double_column` double NOT NULL COMMENT '8',
  `float_column` float NOT NULL COMMENT '10',
  `int_column` int(11) NOT NULL COMMENT '11',
  `longblob_column` longblob NOT NULL COMMENT '12',
  `longtext_column` longtext NOT NULL COMMENT '13',
  `mediumblob_column` mediumblob NOT NULL COMMENT '14',
  `mediumint_column` mediumint(9) NOT NULL COMMENT '15',
  `mediumtext_column` mediumtext NOT NULL COMMENT '16',
  `smallint_column` smallint(6) NOT NULL COMMENT '18',
  `text_column` text NOT NULL COMMENT '19',
  `time_column` time NOT NULL COMMENT '20',
  `timestamp_column` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '21',
  `tinyint_column`  int(11)  NOT NULL COMMENT '22',
  `tinytext_column` tinytext NOT NULL COMMENT '23',
  `varchar_column` varchar(32) NOT NULL COMMENT '24',
  PRIMARY KEY (`bigint_column`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;


模拟新增3万条数据


DROP PROCEDURE if EXISTS test_insert;
DELIMITER //
CREATE PROCEDURE test_insert()
  BEGIN
  DECLARE y BIGINT DEFAULT 0;
  WHILE y<30000
  DO

    INSERT INTO yzh2_sync (
      bit_column, blob_column, char_column,
      date_column, datetime_column, decimal_column,
      double_column, float_column, int_column,
      longblob_column, longtext_column,
      mediumblob_column, mediumint_column,
      mediumtext_column, smallint_column,
      text_column, time_column, timestamp_column,
      tinyint_column, tinytext_column,
      varchar_column)
    VALUES(
      y, y, y, 
      now(), now(), y, 
      y, y, y, 
      y, y, 
      y, y, 
      y, y, 
      y,now(), now(), 
      y, y, 
      y
    );

    SET y=y+1;
  END WHILE ;
  commit;
END //
三个主流数据库(Oracle、MySQL和SQL Server)的“单表造数,oracle,数据库
{ CALL xag.test_insert() }

三个主流数据库(Oracle、MySQL和SQL Server)的“单表造数,oracle,数据库

开发过程中经常需要测试 SQL 在大量数据集时候的执行效率,这就需要我们在表中插入大量的测试数据,下面介绍如何使用存储过程插入大量的测试数据

4.定义常用方法

我们要确保生成的测试数据要有足够的随机性,测试结果才会更准确,如果某个字段的测试数据都是一样的,索引的效率会大大折扣,测试结果往往与真实数据的执行结果大相径庭

我们可以使用 MySQL 的自定义函数来实现随机值的生成,下面罗列出几种常见的字段的函数定义

生成随机时间

函数声明:



CREATE DEFINER=`root`@`%` FUNCTION `genDate`(
  start_time VARCHAR(10),
    end_time VARCHAR(10)
) RETURNS VARCHAR(255) CHARSET utf8mb4
BEGIN
 DECLARE random_date DATETIME DEFAULT NULL;
 SET random_date = CONCAT(
  (DATE(FROM_UNIXTIME(UNIX_TIMESTAMP(start_time) + FLOOR(RAND() * (UNIX_TIMESTAMP(end_time) - UNIX_TIMESTAMP(start_time) + 1))))), 
   ' ', 
            FLOOR(RAND() * 24), ':', FLOOR(RAND() * 60), ':', FLOOR(RAND() * 60)
  );
 RETURN date_format(random_date,'%Y-%m-%d %H:%i:%s');
END

select genDate('2020-01-01','2023-01-01');

三个主流数据库(Oracle、MySQL和SQL Server)的“单表造数,oracle,数据库

生成中文名

函数声明:

CREATE DEFINER=`root`@`%` FUNCTION `genUsername`() RETURNS varchar(255) CHARSET utf8mb4
BEGIN
    DECLARE first_name_dict VARCHAR(2056) DEFAULT '赵钱孙李周郑王冯陈楮卫蒋沈韩杨朱秦尤许何吕施张孔曹严华金魏陶姜戚谢喻柏水窦章云苏潘葛奚范彭郎鲁韦昌马苗凤花方俞任袁柳酆鲍史唐费廉岑薛雷贺倪汤滕殷罗毕郝邬安常乐于时傅皮齐康伍余元卜顾孟平黄和穆萧尹姚邵湛汪祁毛禹狄米贝明臧计伏成戴谈宋茅庞熊纪舒屈项祝董梁杜阮蓝闽席季麻强贾路娄危江童颜郭梅盛林刁锺徐丘骆高夏蔡田樊胡凌霍虞万支柯昝管卢莫经裘缪干解应宗丁宣贲邓郁单杭洪包诸左石崔吉钮龚程嵇邢滑裴陆荣翁';
    DECLARE last_name_dict VARCHAR(2056) DEFAULT '嘉懿煜城懿轩烨伟苑博伟泽熠彤鸿煊博涛烨霖烨华煜祺智宸正豪昊然明杰诚立轩立辉峻熙弘文熠彤鸿煊烨霖哲瀚鑫鹏致远俊驰雨泽烨磊晟睿天佑文昊修洁黎昕远航旭尧鸿涛伟祺轩越泽浩宇瑾瑜皓轩擎苍擎宇志泽睿渊楷瑞轩弘文哲瀚雨泽鑫磊梦琪忆之桃慕青问兰尔岚元香初夏沛菡傲珊曼文乐菱痴珊恨玉惜文香寒新柔语蓉海安夜蓉涵柏水桃醉蓝春儿语琴从彤傲晴语兰又菱碧彤元霜怜梦紫寒妙彤曼易南莲紫翠雨寒易烟如萱若南寻真晓亦向珊慕灵以蕊寻雁映易雪柳孤岚笑霜海云凝天沛珊寒云冰旋宛儿绿真盼儿晓霜碧凡夏菡曼香若烟半梦雅绿冰蓝灵槐平安书翠翠风香巧代云梦曼幼翠友巧听寒梦柏醉易访旋亦玉凌萱访卉怀亦笑蓝春翠靖柏夜蕾冰夏梦松书雪乐枫念薇靖雁寻春恨山从寒忆香觅波静曼凡旋以亦念露芷蕾千兰新波代真新蕾雁玉冷卉紫山千琴恨天傲芙盼山怀蝶冰兰山柏翠萱乐丹翠柔谷山之瑶冰露尔珍谷雪乐萱涵菡海莲傲蕾青槐冬儿易梦惜雪宛海之柔夏青亦瑶妙菡春竹修杰伟诚建辉晋鹏天磊绍辉泽洋明轩健柏煊昊强伟宸博超君浩子骞明辉鹏涛炎彬鹤轩越彬风华靖琪明诚高格光华国源宇晗昱涵润翰飞翰海昊乾浩博和安弘博鸿朗华奥华灿嘉慕坚秉建明金鑫锦程瑾瑜鹏经赋景同靖琪君昊俊明季同开济凯安康成乐语力勤良哲理群茂彦敏博明达朋义彭泽鹏举濮存溥心璞瑜浦泽奇邃祥荣轩';
    DECLARE first_name VARCHAR(3) DEFAULT substring(first_name_dict, floor(length(first_name_dict) / 3 * rand()), 1);
    DECLARE last_name VARCHAR(9);
    DECLARE full_name_length INT DEFAULT FLOOR(2+(RAND()*3))*3;
    DECLARE full_name VARCHAR(12) DEFAULT first_name;
    
 WHILE LENGTH(full_name) < full_name_length DO
        SET full_name = CONCAT(full_name, substring(last_name_dict, floor(length(last_name_dict) / 3 * rand()), 1));
    END WHILE;
    
    return full_name;
end


select genUsername();

 三个主流数据库(Oracle、MySQL和SQL Server)的“单表造数,oracle,数据库

字符串分割选取

函数声明:




CREATE FUNCTION `splitStr` (
 str VARCHAR (1000),
 delimiter VARCHAR (5),
 str_order INT
) RETURNS VARCHAR (255) CHARSET utf8mb4 DETERMINISTIC
BEGIN
 DECLARE result VARCHAR (255) DEFAULT '';

 SET result = REVERSE(
  substring_index(
   REVERSE(
    substring_index(
     str,
     delimiter,
     str_order
    )
   ),
   delimiter,
   1
  )
 );
 RETURN result;
end



select splitStr('I love MySQL',' ',2);


使用示例:该函数用于将字符串按照指定的分割符进行分割,并返回分割后的第 n(n 由参数指定) 个字符串,如取字符串”I love MySQL“按空格分割后的第 2 个字符串

 三个主流数据库(Oracle、MySQL和SQL Server)的“单表造数,oracle,数据库

  

生成随机手机号

函数声明:

CREATE DEFINER=`root`@`%` FUNCTION `genMobile`() RETURNS char(11) CHARSET utf8mb4 NOT DETERMINISTIC
BEGIN
    DECLARE head VARCHAR(100) DEFAULT '132,133,139,183,186,187,130,131,189,151,156,157,176,134,135,137,138,136,000';
    DECLARE content CHAR(10) DEFAULT '0123456789';
    DECLARE phone CHAR(20) DEFAULT splitStr(head, ',', FLOOR(1 + RAND() * 19));
    DECLARE i int DEFAULT 1;
 
    WHILE i<9 DO
        SET i=i+1;
        SET phone = CONCAT(phone, substring(content, floor(1 + RAND() * 10), 1));
    END WHILE;
    RETURN phone;
end


select genMobile();

三个主流数据库(Oracle、MySQL和SQL Server)的“单表造数,oracle,数据库

插入大量测试数据

如下面这张表,现在要插入 10w 的测试数据,我们可以定义一个 MySQL 存储过程,通过存储过程的方式插入数据到表中

表结构

CREATE TABLE `t_user` (
  `user_id` int(11) NOT NULL AUTO_INCREMENT,
  `username` varchar(50) DEFAULT NULL,
  `sex` tinyint(1) DEFAULT NULL,
  `mobile` varchar(45) DEFAULT NULL,
  `create_time` datetime DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`user_id`),
  KEY `idx_create_time` (`create_time`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=100001 DEFAULT CHARSET=utf8mb4

存储过程定义

CREATE DEFINER=`root`@`%` PROCEDURE `t_user_batch_insert`(IN size INT)
BEGIN
 declare i int default 0;
    while i < size do
  insert into t_user(username,sex,mobile) values(genUsername(),floor(rand() * 2),genMobile());
        set i = i + 1;
    end while;
END

调用存储过程

> call t_user_batch_insert(100000);

在我这边,插入 10w 条数据,只要 52s

三个主流数据库(Oracle、MySQL和SQL Server)的“单表造数,oracle,数据库

延伸

除了使用存储过程的方法插入数据外,还可以通过代码的方式插入数据,但是该方法的执行效率不高,但是改方法的执行效率不高。另外,如果你有 navicat 的话,也可以试试 navicat 的数据生成方案,由于我没有 navicat,就不介绍了,感兴趣的可以看 navicat 的文档

5.常用的MySQL测试数据批量生成方式


CREATE TABLE `user` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `username` varchar(255) DEFAULT NULL COMMENT '用户名',
  `role_id` int(11) DEFAULT NULL COMMENT '角色id',
  `password` varchar(255) DEFAULT NULL COMMENT '密码',
  `salt` varchar(255) DEFAULT NULL COMMENT '盐',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

CREATE TABLE `role` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `role_name` varchar(255) DEFAULT NULL COMMENT '角色名',
  `orders` int(11) DEFAULT NULL COMMENT '排序权重\r\n',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

三个主流数据库(Oracle、MySQL和SQL Server)的“单表造数,oracle,数据库

使用函数生成

 通过存储过程快速插入, 通过函数保证数据不重复

设置允许创建函数

查看 MySQL是否允许创建函数

SHOW VARIABLES LIKE 'log_bin_trust_function_creators';

三个主流数据库(Oracle、MySQL和SQL Server)的“单表造数,oracle,数据库

结果如图所示, 我们使用以下命令将创建函数功能打开(global-所有session都生效)

SET GLOBAL log_bin_trust_function_creators=1;

三个主流数据库(Oracle、MySQL和SQL Server)的“单表造数,oracle,数据库

这个时候再一次查询就会显示已打开

三个主流数据库(Oracle、MySQL和SQL Server)的“单表造数,oracle,数据库

产生随机字符串

-- 随机产生字符串
DELIMITER $$
CREATE FUNCTION rand_string(n INT) RETURNS VARCHAR(255)
BEGIN    
  DECLARE chars_str VARCHAR(100) DEFAULT 'abcdefghijklmnopqrstuvwxyzABCDEFJHIJKLMNOPQRSTUVWXYZ';
  DECLARE return_str VARCHAR(255) DEFAULT '';
  DECLARE i INT DEFAULT 0;
  WHILE i < n DO  
    SET return_str =CONCAT(return_str,SUBSTRING(chars_str,FLOOR(1+RAND()*52),1));  
    SET i = i + 1;
  END WHILE;
  RETURN return_str;
END $$

-- 假如要删除
-- drop function rand_string;

三个主流数据库(Oracle、MySQL和SQL Server)的“单表造数,oracle,数据库

产生随机数字


-- 用于随机产生区间数字
DELIMITER $$
CREATE FUNCTION rand_num (from_num INT ,to_num INT) RETURNS INT(11)
BEGIN   
 DECLARE i INT DEFAULT 0;  
 SET i = FLOOR(from_num +RAND()*(to_num -from_num+1));
RETURN i;  
END$$

-- 假如要删除
-- drop function rand_num;

三个主流数据库(Oracle、MySQL和SQL Server)的“单表造数,oracle,数据库

创建存储过程

插入角色表

-- 插入角色数据
DELIMITER $$
CREATE PROCEDURE insert_role(max_num INT)
BEGIN  
  DECLARE i INT DEFAULT 0;   
  SET autocommit = 0;    
  REPEAT  
    SET i = i + 1;  
    INSERT INTO role ( role_name,orders ) VALUES (rand_string(8),rand_num(1,5000)); 
    UNTIL i = max_num  
  END REPEAT;  
  COMMIT;  
END$$
 
-- 删除
-- DELIMITER ;
-- drop PROCEDURE insert_role;

三个主流数据库(Oracle、MySQL和SQL Server)的“单表造数,oracle,数据库

插入用户表

-- 插入用户数据
DELIMITER $$
CREATE PROCEDURE  insert_user(START INT, max_num INT)
BEGIN  
  DECLARE i INT DEFAULT 0;   
  SET autocommit = 0;    
  REPEAT  
    SET i = i + 1;  
    INSERT INTO user (username, role_id, password, salt ) VALUES (rand_string(8) ,rand_num(1,100000), rand_string(10), rand_string(10));  
    UNTIL i = max_num  
  END REPEAT;  
  COMMIT;  
END$$
 
-- 删除
-- DELIMITER ;
-- drop PROCEDURE insert_user;

三个主流数据库(Oracle、MySQL和SQL Server)的“单表造数,oracle,数据库

 执行存储过程


-- 执行存储过程,往dept表添加10万条数据
CALL insert_role(100000); 

-- 执行存储过程,往emp表添加100万条数据,编号从100000开始
CALL insert_user(100000,1100000);

三个主流数据库(Oracle、MySQL和SQL Server)的“单表造数,oracle,数据库

mysql 1197_mysql主从不同步报错Last_Errno 1197

三个主流数据库(Oracle、MySQL和SQL Server)的“单表造数,oracle,数据库

04使用 Navicat自带的数据生成​​​​​​​

接来我们使用 Navicat的数据生成

三个主流数据库(Oracle、MySQL和SQL Server)的“单表造数,oracle,数据库

三个主流数据库(Oracle、MySQL和SQL Server)的“单表造数,oracle,数据库

直接下一步, 然后选择对应的两张表生成行数和对应的生成规则, 基于之前的执行速度, 这次 role生成 1w数据, user生成 10w数据

对于字符串类型的字段, 我们可以设置他的随机数据生成器, 根据需要进行选择

三个主流数据库(Oracle、MySQL和SQL Server)的“单表造数,oracle,数据库

三个主流数据库(Oracle、MySQL和SQL Server)的“单表造数,oracle,数据库

但是如果是 姓名 那么就会让你选择是否唯一

三个主流数据库(Oracle、MySQL和SQL Server)的“单表造数,oracle,数据库

数字的话会让你选择范围, 默认值等

三个主流数据库(Oracle、MySQL和SQL Server)的“单表造数,oracle,数据库

三个主流数据库(Oracle、MySQL和SQL Server)的“单表造数,oracle,数据库

三个主流数据库(Oracle、MySQL和SQL Server)的“单表造数,oracle,数据库

等确定好了, 我们就可以点击右下角进行生成随机测试数据

三个主流数据库(Oracle、MySQL和SQL Server)的“单表造数,oracle,数据库

操作过程报错

1)mysql 1197_mysql主从不同步报错Last_Errno 1197

解决办法:根据你的机器的内存大小适当增大参数max_binlog_cache_size参数



#查看现在的大小:

1)查看全局的参数大小:

mysql> show GLOBAL variables like 'max_binlog_cache_size';


2)查看当前会话的参数的大小:

mysql> show session variables like 'max_binlog_cache_size';

#如果只是当前会话的小,只要

mysql> set session max_binlog_cache_size=18446744073709547520;


否则需要

mysql> set global binlog_cache_size=18446744073709547520;

mysql 1197_mysql主从不同步报错Last_Errno 1197-CSDN博客文章来源地址https://www.toymoban.com/news/detail-628141.html

到了这里,关于三个主流数据库(Oracle、MySQL和SQL Server)的“单表造数的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 实例讲解C++连接各种数据库,包含SQL Server、MySQL、Oracle、ACCESS、SQLite 和 PostgreSQL、MongoDB 数据库

      C++ 是一种通用的编程语言,可以使用不同的库和驱动程序来连接各种数据库。以下是一些示例代码,演示如何使用 C++ 连接 SQL Server、MySQL、Oracle、ACCESS、SQLite 和 PostgreSQL、MongoDB 数据库。 连接 SQL Server 数据库 要使用 C++ 连接 SQL Server 数据库,可以使用 Microsoft 的 ADODB 库。以

    2024年02月05日
    浏览(66)
  • 数据库问题记录(粗略版)oracle、mysql等主流数据库通用

    1. ORA-00918:未明确定义列 该问题情况大致为:select 所取列名错误、重复等问题。 2. “select * from temp where 1=0; ”的含义 布尔值为FALSE,只返回表结构,不返回数据。 举一反三: select * from temp where 10 , 布尔值为TRUE,返回所有数据记录; select * from temp where 1=0, 暂不清楚是何

    2024年02月07日
    浏览(50)
  • Oracle/MySQL/PG/SQL Server关系数据库中NULL与空字符串的区别

    在Oracle数据库中,\\\'\\\'(空字符串)与null是什么关系呢? \\\'\\\'(空字符串)是否会等同(或者说等价于)于null值呢?\\\'\\\'跟\\\' \\\'(长度为零的空字符串或包含一个或多个空格的空字符串)是否又等价?下面我们测试一下 如上所示,插入\\\'\\\'时,Oracle数据库确实将其等同与null,但是, 像\\\'

    2024年02月16日
    浏览(65)
  • Sql server 连接 Oracle数据库

    前提预警:本机必须装有Oracle客户端 检查是否安装Oracle客户端,并检查TNS信息是否配置完成 1.1、 在cmd中执行 sqlplus ,没有报错并出现Oracle版本号,则表示Oracle已安装 1.2、配置TNS信息(最上面的10.0.0.130可随意定义,eg:test、orcl、qerghasd…) 配置ODBC数据信息 2.1、打开ODBC数据

    2024年02月03日
    浏览(59)
  • Sql server和Oracle默认数据库

            SQL Server 和 Oracle 都有自带的一些默认数据库,保存了不同的系统信息和配置数据。         SQL Server 上的默认数据库:          master :SQL Server 引擎的系统级目录,存储了 所有系统层级的信息和元数据 ,例如登录账号信息。         tempdb:存储各种系

    2024年02月09日
    浏览(62)
  • SQL SERVER连接oracle数据库几种方法

    --1 方式  --查询oracle数据库中的表  举一反三:在查询分析器中输入: --在sqlserver中创建与oracle数据库中的表同名的表  --2、方式  --在master数据库中查看已经存在的链接服务器  --要在企业管理器内指定登录帐号 --备注:引用ORACLE服务器上的表时,用户名称与表名一定要大写

    2024年02月02日
    浏览(49)
  • 【MySQL】:探秘主流关系型数据库管理系统及SQL语言

    🎥 屿小夏 : 个人主页 🔥个人专栏 : MySQL从入门到进阶 🌄 莫道桑榆晚,为霞尚满天! 在现代信息技术领域中,数据库管理系统扮演着至关重要的角色。本文将介绍数据库、数据库管理系统和SQL等概念,并深入探讨主流的关系型数据库管理系统以及关系型数据库的数据模

    2024年01月20日
    浏览(69)
  • SQL Server数据库如何添加Oracle链接服务器(Windows系统)

    官方下载地址:https://www.oracle.com/technetwork/topics/dotnet/downloads/odacdeploy-4242173.html 1.2.1 下载的压缩包解压位置   比如我直接放到D盘根目录 1.2.2 接着用管理员运行Cmd 此处一定要用管理员运行,否则会报错 使用管理员打开终端,运行如下命令: 在系统环境变量中,为Path添加“

    2024年02月14日
    浏览(84)
  • 数据库sql 根据身份证计算年龄段mysql、oracle

    mysql: mysql通过函数可以精确到日 结果: Oracle: oracle只是年份相减,不够精确 结果:

    2024年02月12日
    浏览(69)
  • 数据库SQL函数 根据身份证号/出生年月 精确计算年龄(Oracle/MySQL)

    问题 根据身份证号统计年龄(18位) Oracle 思路 (1)Substr()函数在Oracle使用中表示被劫取的字符串表达式,截取字符串的内容。 (2)To_date()函数可以转换不同格式的日期,通过使用to_date函数可以将字符串类型的日期转换成date格式。 (3)Months_between()函数反悔两个日期之间的

    2024年02月11日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包