mysql存储过程用concat连接字符串做多连接几个?我在里面一个循环片段里要写一个语句给多个表插值,表名是变量所以只能用concat连接成一个sql语句,后面j也是变量,不知道为什么会报错,这个语句我提取出来能正常运行,不知道为什么用concat拼接后报错
代码片段如下:
SET j = 0;
WHILE j<num2 DO
IF j<10 THEN
SET table_name = CONCAT('t_UserLog0',j);
ELSE
SET table_name = CONCAT('t_UserLog',j);
END IF;
SET @a = CONCAT(
'CREATE TABLE ',table_name,'(
店长编号 VARCHAR(255),店长姓名 VARCHAR(255),报单中心 VARCHAR(255),报单中心姓名 VARCHAR(255),订单号 VARCHAR(255),订单状态 VARCHAR(255),存货编码 VARCHAR(255),存货名称 VARCHAR(255),数量 VARCHAR(255),收货人 VARCHAR(255),联系方式1 VARCHAR(255),联系方式2 VARCHAR(255),省 VARCHAR(255),市 VARCHAR(255),区 VARCHAR(255),详细地址 VARCHAR(255),期数 VARCHAR(255),订单类型 VARCHAR(255),发货仓 VARCHAR(255),创建时间 VARCHAR(255),支付时间 VARCHAR(255),发货时间 VARCHAR(255),商品单价 VARCHAR(255),商品金额 VARCHAR(255),运费 VARCHAR(255),快递公司 VARCHAR(255),快递单号 VARCHAR(255),发货方式 VARCHAR(255),会员备注 VARCHAR(255),发货状态 VARCHAR(255))ENGINE=Innodb default charset=utf8;'
);
PREPARE create_stmt FROM @a;
EXECUTE create_stmt;
SET @b = CONCAT(
'INSERT INTO',table_name,'SELECT * FROM test4 WHERE 报单中心=(SELECT 报单中心 FROM test5 LIMIT ',j,',1);'
);
PREPARE insert_stmt FROM @b;
EXECUTE insert_stmt;
SET j = j+1;
END WHILE;
报错信息:
1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '* FROM test4 WHERE 报单中心=(SELECT 报单中心 FROM test5 LIMIT 0,1)' at line 1