gpt4 book ai didi

MySQL,如何在 ADD 关键字后传递@var?

转载 作者:搜寻专家 更新时间:2023-10-30 22:33:18 26 4
gpt4 key购买 nike

首先,我在 5.6.34 - MySQL Community Server (GPL) 中创建了一个包含一个文本列的表,如下所示:

CREATE TABLE `$_query_test`.`t1` ( c1 TEXT NOT NULL ) ENGINE = InnoDB;

然后我执行:

SET @var = 321; INSERT INTO `t1` (c1) VALUES (@var);

我按预期获得了一个值为 321 的条目,但是当我执行时:

SET @var = '_string_';
ALTER TABLE `t1` ADD @var TEXT;

我得到一个错误

#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 '@var TEXT' at line 1

做这样的事情的正确语法是什么?我进行了广泛的搜索,但到目前为止一无所获。

最佳答案

答案是您不能用 sql 变量代替标识符(例如字段名、表名等)。期间。

您可以做的是在应用程序级别或在 mysql 中创建完整的 sql 语句作为字符串,标识符已经被替换,然后执行完整的语句。

在 mysql 中,您可以通过 prepared statements 执行此操作:

PREPARE stmt1 FROM CONCAT('ALTER TABLE `t1` ADD ', @var, ' TEXT');
EXECUTE stmt1;
DEALLOCATE PREPARE stmt1;

关于MySQL,如何在 ADD 关键字后传递@var?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41081821/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com