复制表和批量增加表数据

增加百万表数据,根据配置、是否索引等情况,可能需要几分钟~几个钟时间不等

oracle 

oracle:

1.查看数据库所有表以及表行数
select t.table_name,t.num_rows from user_tables t ORDER BY NUM_ROWS DESC;

2.复制一张表和表数据
    create table ORA_DATA1 as select * from HR.ORACLE_ALL_TYPE_SRC_DATA WHERE ID < 100000;

复制表数据:
insert into  HR.ORA_DATA1 select * from HR.ORACLE_ALL_TYPE_SRC_DATA WHERE ID < 1000001;


3.去重,并计算数量
SELECT count(DISTINCT oravarchar2 ) FROM HR.ORACLE_ALL_TYPE_SRC_DATA ;



批量新增数据:
DECLARE
str Varchar(10);-- 定义一个字符串变量str
BEGIN
for i in 100000 .. 1000000 loop
INSERT INTO "HR"."ORA_DATA1"("ID", "ORACHAR", "ORAVARCHAR2", "ORANCHAR", "ORANVARCHAR2", "ORADATE", "ORANUMBER", "ORADECIMAL", "ORAINTEGER", "ORAFLOAT", "ORAREAL", "ORANAME") VALUES (i, '固定    ', '可变字符'||i, '固定长水电费水电费 ', '根据字符集而定的可变长度字符串根据字符集而定的可变长度字符串根据字符集而定的可变长度字符串根据字符集而定的可变长度字符串', TO_DATE('2021-09-16 15:17:31', 'SYYYY-MM-DD HH24:MI:SS'), '12', '12.198212315454645464646464132456848', '11'||''||i, i||''||'123123.34500000000', '1212411982639182.0', 'ORANAME1  ');
end loop;
commit;
END;

pg

清空表数据:
TRUNCATE TABLE kgtest.postgre_type_hastime_tar_data ;

pg批量插入数据:
do $$
declare
num integer := 1;
BEGIN
	while num < 2000001 loop
		INSERT INTO kgtest.postgre_type_hastime_tar_data
(id, sinteger, sfloat, schar, svarchar, stimestamp, sboolean, sdate, sunique, stime, snull)
VALUES(num, 8888, num*0.001, 'char', '字符串'||num, now(), true, now(), 11, now(), '中文'||num);
		num = num+1;
  end loop;
end $$;

去重查询表:
select count(DISTINCT id) from kgtest.postgre_type_hastime_tar_data ;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在MySQL中,如果你想批量添加结构,通常的做法不是直接修改已有的,因为这可能会导致数据丢失或插入错误。相反,你可以创建一个新的,并根据需要包含所有字段,然后通过数据迁移工具将现有数据复制到新。 以下是一个简单的步骤说明: 1. **设计新的结构**:首先在MySQL中设计出你需要的新结构,包括字段名、数据类型、长度以及可能的约束条件(如唯一键、外键等)。 ```sql CREATE TABLE new_table_name ( column1 datatype, column2 datatype, ..., constraint1 type, constraint2 type ); ``` 2. **验证并备份现有数据**:确保你在操作前有对原始数据进行了备份,以防万一。 3. **复制数据到新**:使用`INSERT INTO SELECT`语句从旧导入数据到新。例如: ```sql INSERT INTO new_table_name SELECT * FROM old_table_name; ``` 4. **验证数据迁移**:检查新中的数据是否正确无误。 5. **删除旧并重命名新**:确认一切都正常后,可以删除旧并更改新名称为原名称,但最好先设置一个临时的新名称再做操作: ```sql RENAME TABLE temp_new_table_name TO old_table_name; DROP TABLE IF EXISTS temp_new_table_name; ``` 6. **更新索引和约束**:如果新的结构有所改变,可能还需要手动添加或调整索引和约束。 注意:这是一个基本过程,实际操作时可能需要处理更复杂的情况,比如处理大量数据,应该分批次进行以防止内存溢出。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值