分表时快速创建多个相同的表结构
假设我们要给test这张表做分表操作,test_00、test_01、test_63,则可以参考如下语句:
test表结构如下:
create table test(
name varchar(255),
age int(3),
sex char(1),
phonenumber char(11),
email varchar(255)
);
一次性创建多张表:
DECLARE
v_prefix VARCHAR2(20) := test_; -- 表名前缀
v_suffix VARCHAR2(20); -- 表名后缀
BEGIN
FOR i IN 1..64 LOOP
IF i < 10 THEN -- 表名后缀小于10时需要在前面加0
v_suffix := 0 || i;
ELSE
v_suffix := i;
END IF;
-- 创建表
EXECUTE IMMEDIATE CREATE TABLE || v_prefix || v_suffix || AS SELECT * FROM test WHERE 1=2;
END LOOP;
END; 假设我们要给test这张表做分表操作,test_00、test_01、test_63,则可以参考如下语句: test表结构如下: create table test( name varchar(255), age int(3), sex char(1), phonenumber char(11), email varchar(255) ); 一次性创建多张表: DECLARE v_prefix VARCHAR2(20) := test_; -- 表名前缀 v_suffix VARCHAR2(20); -- 表名后缀 BEGIN FOR i IN 1..64 LOOP IF i < 10 THEN -- 表名后缀小于10时需要在前面加0 v_suffix := 0 || i; ELSE v_suffix := i; END IF; -- 创建表 EXECUTE IMMEDIATE CREATE TABLE || v_prefix || v_suffix || AS SELECT * FROM test WHERE 1=2; END LOOP; END;
