MySQL:Insert语句中的用户定义变量

时间:2019-03-19 09:03:11

标签: mysql

我正尝试使用以下mysql代码在名称由某个值决定的列上插入。它给我一个错误,即“字段列表”中的“ some_percent”未知列“ some_percent”

set @SplitState = `some_percent`;
SET @ID = uuid();
INSERT INTO `rspca_donations`(`id`, `@SplitState`) values (@ID, '100');

有人可以建议正确的方法吗?

1 个答案:

答案 0 :(得分:1)

您不能以这种方式使用用户变量来表示列名。一种选择是在MySQL中使用预处理语句:

SET @SplitState = 'some_percent';
SET @ID = UUID();
SET @sql = CONCAT('INSERT INTO rspca_donations (id, ', @SplitState, ') VALUES (?, 100)');
PREPARE stmt FROM @sql;
EXECUTE stmt USING @ID;