mysql - 声明变量 MySQL 触发器并使用该变量创建表
问题描述
我有一个事件,我将一个字符串存储在一个变量中。现在我想使用该变量来创建一个新表。每次我的事件运行时,它都会创建名为“ mon ”的表。我在做什么错?
BEGIN
DECLARE onlyweek INT;
DECLARE mon VARCHAR(20);
SET @mon = "rehan";
CREATE TABLE mon(
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100) NOT NULL,
capacity INT NOT NULL
);
END
解决方案
因为您使用mon
而不是@mon
. 即使那样它也不会工作,因为你需要动态 SQL。
但更重要的是:
不要那样做!
不要即时创建表。表格设计应该是静态的。这闻起来像是一个很大的设计缺陷。
推荐阅读
- azure - Azure 认知服务 - TTS
- command-line - 使用“rm”从另一个目录远程删除文件?
- javascript - 如何使用 javascript-client 关闭与 sse Flux 的连接?
- c# - C# 8 switch 表达式:一次处理多个案例?
- ruby-on-rails - 验证失败:[attribute] 不能为空 - (但不是!?)
- mysql - 外键可以存储与主键值不匹配的值吗?
- python - 从字符串的开头和结尾删除非字母字符
- javafx - 我选择了一个窗格,但我想设置对齐方式,可以吗?
- python - 如何在 pyinstaller 中设置隐藏导入
- java - Java:FileOutputStream 和 FileInputStream 一起放在同一个文件上