在创建数据库和 table 之前创建一个过程
Creating a Procedure prior to the creation of database and table
我想在创建数据库的过程中创建一个过程,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 - PROCEDURE database_sensor1.MYLOOP does not exist
我正在尝试通过快速更改 table 添加 32 列来使用循环 table 创建的过程,以便我可以 运行 另一个 .php 添加值。
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();
版本:
IF database_name EXISTS
构造不存在。删除。见第 3 版。
- 过程创建代码未使用定界符完成。已添加。
- 没有明确指定必须在其中创建过程的数据库。添加。如果数据库不存在,则会生成错误。与 table 名称相同。
我想在创建数据库的过程中创建一个过程,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 - PROCEDURE database_sensor1.MYLOOP does not exist
我正在尝试通过快速更改 table 添加 32 列来使用循环 table 创建的过程,以便我可以 运行 另一个 .php 添加值。
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();
版本:
IF database_name EXISTS
构造不存在。删除。见第 3 版。- 过程创建代码未使用定界符完成。已添加。
- 没有明确指定必须在其中创建过程的数据库。添加。如果数据库不存在,则会生成错误。与 table 名称相同。