限制表可以拥有的记录数

Oma*_*mar 3 mysql sql

我创建了一张桌子master-domain.该表应该只有3条记录.如何限制mysql数据库只允许超过该数量的记录?是否有特定的sql命令来执行此操作?

这是我目前的SQL:

CREATE TABLE `mydatabase`.`master-domain`
(
`domain` VARCHAR( 50 ) NOT NULL COMMENT 'Domain Name',
PRIMARY KEY ( `domain` )
)
Run Code Online (Sandbox Code Playgroud)

PS.我有godaddy,它包括phpMyAdmin,以及MySQL数据库.

oct*_*ern 5

您可以使表的主键成为类型的字段ENUM.例如:

CREATE TABLE test (
    id enum('1','2') NOT NULL, 
    domain varchar(50) NOT NULL, 
    primary key (id));
Run Code Online (Sandbox Code Playgroud)

更新它时,您必须将ID明确设置为"","1"或"2".*它不能为空,每个ID只能有一条记录.域仍然存储在domain字段中,因此无论外部系统查询此数据库,都希望获得所需的结果不会有任何问题.

如果要复制当前限制域名必须是唯一的限制,您还可以添加unique key (domain).

*请注意,允许使用空字符串(并且与NULL不同),因为枚举实际上是一种字符串.因此,您要指定两个允许的ID值,以便总共有三个.


或者:你想在这里实现/阻止什么?是否有一些自动化流程可能会向表中添加记录?您是在尝试确保不会意外地执行此操作,还是劫持您帐户的人无法执行此操作?

如果可能在您的用户上运行可能插入记录的进程,则可以将三条记录放入表中,然后从您自己中删除INSERT权限.您仍然可以更改现有记录,但除非您明确重新授予该功能,否则您将无法再添加.