polardbxengine/storage/ndb/test/rqg/oj_schema_mod_ndb.sproc.sql

51 lines
1.4 KiB
SQL

delimiter |;
CREATE PROCEDURE oj_schema_mod_ndb(db varchar(64))
BEGIN
declare tabname varchar(255);
declare indextype varchar(32);
declare _unique varchar(16);
declare done integer default 0;
declare cnt integer default 0;
declare c cursor for
SELECT table_name
FROM INFORMATION_SCHEMA.TABLES where table_schema = db;
declare continue handler for not found set done = 1;
open c;
repeat
fetch c into tabname;
if not done then
set cnt = cnt+1;
## Modify primary key & partition for some tables
if ((cnt%3) = 0) then
set @ddl = CONCAT('ALTER TABLE ', db, '.', tabname, ' PARTITION BY KEY(col_int)');
select @ddl;
PREPARE stmt from @ddl;
EXECUTE stmt;
elseif ((cnt%5) = 0) then
set @ddl = CONCAT('ALTER TABLE ', db, '.', tabname, ' PARTITION BY KEY(pk)');
select @ddl;
PREPARE stmt from @ddl;
EXECUTE stmt;
elseif ((cnt%7) = 0) then
set @ddl = CONCAT('ALTER TABLE ', db, '.', tabname, ' PARTITION BY KEY(col_char_16)');
select @ddl;
PREPARE stmt from @ddl;
EXECUTE stmt;
elseif ((cnt%11) = 0) then
set @ddl = CONCAT('ALTER TABLE ', db, '.', tabname, ' PARTITION BY KEY(col_varchar_256)');
select @ddl;
PREPARE stmt from @ddl;
EXECUTE stmt;
end if;
end if;
until done end repeat;
close c;
END
\G