在创建数据库的过程中,我尝试创建一个过程,mysql查询如下:
CREATE DATABASE database_Sensor1;
USE database_Sensor1;
CREATE TABLE Persons(id int NOT NULL);
DELIMITER //
CREATE PROCEDURE MYLOOP() IF database_Sensor1 EXISTS
BEGIN
DECLARE i int;
DECLARE str varchar(255);
SET i = 0;
WHILE i < 32 DO
SET str = CONCAT('col_',i);
SET @sql = CONCAT('ALTER TABLE persons ADD ',str,' float;');
SET i = i + 1;
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
END WHILE;
END
DELIMITER ;
CALL MYLOOP();但是我得到了这个错误:
#1305 -过程数据库
_
sensor1.MYLOOP不存在
我尝试使用该过程来循环创建表,方法是快速修改表以添加32列,以便可以运行另一个.php来添加值。
发布于 2021-03-02 13:14:13
CREATE DATABASE database_Sensor1;
USE database_Sensor1;
CREATE TABLE database_Sensor1.Persons(id int NOT NULL);
DELIMITER //
CREATE PROCEDURE database_Sensor1.MYLOOP()
BEGIN
DECLARE i int;
DECLARE str varchar(255);
SET i = 0;
WHILE i < 32 DO
SET str = CONCAT('col_',i);
SET @sql = CONCAT('ALTER TABLE database_Sensor1.persons ADD ',str,' float;');
SET i = i + 1;
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
END WHILE;
END
//
DELIMITER ;
CALL MYLOOP();版本:
构造不存在。已删除。请参见第3版。
过程创建代码未使用分隔符结束。已添加。
未显式指定必须在其中创建过程的数据库。已添加。如果数据库不存在,则会生成错误。表名也是如此。
https://stackoverflow.com/questions/66432888
复制相似问题