首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在创建数据库和表之前创建过程

在创建数据库和表之前创建过程
EN

Stack Overflow用户
提问于 2021-03-02 11:28:32
回答 1查看 26关注 0票数 0

在创建数据库的过程中,我尝试创建一个过程,mysql查询如下:

代码语言:javascript
复制
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来添加值。

EN

Stack Overflow用户

回答已采纳

发布于 2021-03-02 13:14:13

代码语言:javascript
复制
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版。

过程创建代码未使用分隔符结束。已添加。

未显式指定必须在其中创建过程的数据库。已添加。如果数据库不存在,则会生成错误。表名也是如此。

票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66432888

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档