Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL游标-插入中间表-2列:1列-设置值,2列-选择值_Mysql_Cursor - Fatal编程技术网

MySQL游标-插入中间表-2列:1列-设置值,2列-选择值

MySQL游标-插入中间表-2列:1列-设置值,2列-选择值,mysql,cursor,Mysql,Cursor,我在MySQL中编写了一个游标,在中间表dw\u-code\u-events DELIMITER // CREATE PROCEDURE attended_code_events_table() BEGIN DECLARE done BOOLEAN DEFAULT FALSE; DECLARE coder_ID VARCHAR(40); DECLARE att_code_events CURSOR FOR SELECT 'ID.x' FROM New_Coders_S

我在MySQL中编写了一个游标,在中间表
dw\u-code\u-events

DELIMITER //
            
CREATE PROCEDURE attended_code_events_table()
BEGIN
DECLARE done BOOLEAN DEFAULT FALSE;
DECLARE coder_ID VARCHAR(40);

DECLARE att_code_events CURSOR
FOR SELECT 'ID.x' FROM New_Coders_Survey_Data
WHERE 'ResourceBlogs' = 1;

DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;

OPEN att_code_events;
REPEAT
    FETCH att_code_events INTO coder_ID;
    INSERT INTO dw_attended_code_events (code_event_id, coder_id) VALUES(1, coder_ID);
UNTIL done END REPEAT;
CLOSE att_code_events;
END; //
DELIMITER ;
code\u事件\u id
中,我需要插入id-即“1”,在
coder\u id
中,我需要插入来自表
New\u Coders\u Survey\u Data的编码器id

我的光标当前正在插入1条记录: 1到第1列 并在第二列中输入NULL

如何更正光标

亲切问候,,
安娜

不需要光标。只需使用
SELECT
查询作为
INSERT
的数据源即可。使用反勾号可以转义包含特殊字符(如
)的列名,而不是单引号(请参阅)


DECLARE att_code_events CURSOR,用于从新的_Coders_Survey_数据中选择'ID.x',其中'ResourceBlogs'=1-在此代码中,
'ID.x'
'ResourceBlogs'
是字符串文字,而不是列名
'ResourceBlogs'=1
为False,游标不返回任何行,FETCH sets
coder\u ID
为NULL,并触发处理程序,插入NULL,然后循环中断。如何更正游标?使用反勾号而不是引号。但您尝试实现的操作可以通过一个简单的查询轻松执行,无需过程、光标和其他构造。请运行youzr select query ansee它将显示什么,因为ID.x即使在倒勾中也会显示错误
INSERT INTO dw_attended_code_events (code_event_id, coder_id)
SELECT 1, `ID.x`
FROM FROM New_Coders_Survey_Data
WHERE 'ResourceBlogs' = 1;