首页 > 解决方案 > 声明变量 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

标签: mysqlmysql-event

解决方案


因为您使用mon而不是@mon. 即使那样它也不会工作,因为你需要动态 SQL。

但更重要的是:

不要那样做!

不要即时创建表。表格设计应该是静态的。这闻起来像是一个很大的设计缺陷。


推荐阅读