发布网友 发布时间:2022-04-30 03:00
共4个回答
懂视网 时间:2022-04-30 07:22
第一次写存储过程,写得好憋屈。
set @c_db := (select database());
drop procedure if exists alter_tables_engine;
delimiter //
create procedure alter_tables_engine()
begin
declare db varchar(64);
declare done boolean default 0;
declare t varchar(64);
declare table_names cursor for
select table_name from information_schema.tables where table_schema = @c_db;
declare continue handler for sqlstate ‘02000‘ set done = 1;
open table_names;
repeat
fetch table_names into t;
set @stmt = concat(‘alter table ‘, t, ‘ engine = InnoDB‘);
prepare s from @stmt;
execute s;
deallocate prepare s;
until done end repeat;
close table_names;
end;
//
delimiter ;
call alter_tables_engine();
drop procedure if exists alter_tables_type;
最后提个问题,我还没有google到的,怎么unset之前已经定义过的用户变量呢?
MySQL存储过程修改表存储引擎为InnoDB
标签:
热心网友 时间:2022-04-30 04:30
这个问题我之前碰到过,方法是,追答mysql 默认是MyISAM引擎,不支持外键,要用InnoDB引擎才能支持。
创建表时这样写:
CREATE TABLE `order` (
`ORDER_ID` int(11) NOT NULL
...
...
) ENGINE=InnoDB DEFAULT CHARSET=latin1
注意:ENGINE=InnoDB 即可
热心网友 时间:2022-04-30 05:48
首先修改my.ini,在[mysqld]下加上:热心网友 时间:2022-04-30 07:22
你可以安装一个MySQL GUI Tools 这样就可以 很方便的 进行这样的修改了,