这就是我想在 mySQL 中做的事情...我感觉这根本不可行,但很想错...
create procedure foo(IN MYTABLE varchar(50) , IN COLNAME varchar (50), IN MYTYPE varchar(50))
begin
IF (select count(*) from information_schema.columns where table_name =MYTABLE and column_name = COLNAME) = 0
THEN
alter table MYTABLE add column MYNAME MYTYPE;
end;
call foo( 'table_foo' , 'column_bar' , 'varchar(100)' );
不知道为什么你会想要它,但这是可能的:
DELIMITER //
DROP PROCEDURE foo//
CREATE PROCEDURE foo(IN MYTABLE varchar(50) , IN COLNAME varchar (50), IN MYTYPE varchar(50))
BEGIN
SET @ddl = CONCAT('alter table ', MYTABLE, ' add column (', COLNAME, ' ', MYTYPE, ')');
PREPARE STMT FROM @ddl;
EXECUTE STMT;
END;
//
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)