假设我们要给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;