我们可以使用StoredProcedures创建表,我使用mysql,我已经在网上搜索使用存储过程创建表,但我没有找到,我发现我们可以创建临时表,如果我们创建表使用是否有任何问题存储过程?
其实我想检查天气表是否存在....然后必须创建..
答案 0 :(得分:4)
您可以使用mysql中的过程创建表。
delimiter |
CREATE PROCEDURE SP_CREATE_TABLE_TEST ()
BEGIN
CREATE TABLE TEST
(
TestID int(11) default NULL,
TestName varchar(100) default NULL
)
ENGINE=InnoDB DEFAULT CHARSET=utf8;
END;
|
答案 1 :(得分:1)
编辑:谢谢彼得!因此,解决此特定问题的方法:
DELIMITER //
CREATE PROCEDURE createTable(IN tableName VARCHAR(40))
BEGIN
SET @table := tableName;
SET @sql_text:=CONCAT('CREATE TABLE ',@table,'(id INT NOT NULL AUTO_INCREMENT, FILENAME VARCHAR(40) NOT NULL, DATA BLOB NOT NULL, PRIMARY KEY (ID))');
PREPARE stmt from @sql_text;
EXECUTE stmt;
END //
DELIMITER ;
除了手册,我还发现Roland Bouman的非常有用的话:
http://rpbouman.blogspot.com/2005/11/mysql-5-prepared-statement-syntax-and.html enter code here
El autor de la respuesta:ConradLjungström
答案 2 :(得分:0)
您可以在存储过程中创建表而不会出现问题。例如:
delimiter |
create procedure createtab ()
begin
create table a(id int);
insert into a select 1;
select * from a;
drop table a;
end
|
delimiter ;
答案 3 :(得分:0)
这样的事情应该有效。
delimiter |
CREATE PROCEDURE SP_CREATE_TABLE( )
BEGIN
CREATE TABLE employees (emp_id int, emp_name varchar(100));
END;
|