是否有一种机制来禁用插入表?

时间:2015-08-20 11:27:18

标签: mysql

我有一个表纯粹用作某个逻辑的数组。

该表应该只有一行,否则我的逻辑会失败。 是否有任何DDL命令禁用插入表?

截至目前 - 我已经插入了我的逻辑所需的“一行”数据,现在,计划创建一个后插入触发器来删除新输入的记录。 B)

但是我注意到有一些ALTER TABLE命令来禁用/启用键,所以我想知道是否有替代触发器代码。

mysql> select version();
5.6.25-enterprise-commercial-advanced-log

2 个答案:

答案 0 :(得分:3)

这通常不是我们应该如何使用关系,但可以使用一个只能使用一个值的列来完成,但也可以使用UNIQUE KEY

CREATE TABLE `MyTable` (
   `ActualData1` INT NOT NULL DEFAULT 0,
   `ActualData2` INT NOT NULL DEFAULT 0,
   `ActualData3` INT NOT NULL DEFAULT 0,

   `Dummy` ENUM("!") NOT NULL DEFAULT "!",
   UNIQUE KEY `OnlyOneRowAllowed` (`Dummy`)
);

...如果你不介意有一个额外的列存在,你将永远不会使用。

答案 1 :(得分:2)

当然,不要将此表的INSERT权限授予普通用户。