如何将在我的数据库中创建的特定行列入黑名单?
Posted
技术标签:
【中文标题】如何将在我的数据库中创建的特定行列入黑名单?【英文标题】:How can I blacklist specific rows from being created in my database? 【发布时间】:2015-03-29 20:17:57 【问题描述】:在我的数据库中,我为自己的目的创建了常量行。其中一些行是垃圾,不需要的垃圾邮件,我想将其列入黑名单以防止创建。是否有一条 SQL 语句,如果它具有特定的字段名称,我可以发送它以将创建的行列入黑名单?例如,将完全禁止创建 WHERE column = 1 的任何行,并且只会拒绝创建行。
【问题讨论】:
【参考方案1】:一种方法是检查约束。其他,是 BEFORE INSERT 触发器
【讨论】:
BEFORE INSERT 触发器具体要输入什么内容?我在我的数据库的 phpMyAdmin 触发器部分,我选择了我的表,idk 在“定义”部分输入什么。我需要执行类似 IF column_name = custom_value THEN DO NOT INSERT ROW 之类的操作。那句话是完全错误的,但它说明了需要发生的事情。 好吧 - 只是提出一个错误 ;) 老实说 - 我不知道如何在 mysql 中进行操作。在 PostgreSQL 中,您只需执行RAISE [EXCEPTION] 'your exception text'
即可。我认为你需要使用SIGNAL
关键字(dev.mysql.com/doc/refman/5.5/en/signal.html),但它不像 Postgres 那样“开箱即用”。 SO上有一些关于这个的主题(比如这个:***.com/questions/4862911/…),所以你会弄明白的。为什么不使用检查约束?它更容易 - 特别是对于简单的子句......以上是关于如何将在我的数据库中创建的特定行列入黑名单?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Simple JWT(django rest)将 JWT 令牌列入黑名单?
GCP 上的 Terraform:如何将我的集群节点列入 RDS 白名单