mysql - 如何防止删除 MySql 中的默认行?

标签 mysql sql validation triggers constants

如何防止删除 MySql 中的默认行?

假设,我有一条 id 为 0 的记录,用户无法插入任何 id 值为 0 的记录,在某些情况下我使用默认行值来显示默认设置。现在我想防止用户在数据库级别删除此行。

我尝试使用triger来执行此操作,例如我在删除id值之前 checkin ,如果id==0,则id=4444444.. .,在这种情况下不会删除任何记录,因为我用不存在的行id设置了id。但这个方法不行;

最佳答案

您可以创建一个使用引用 ID 列的外键约束的表(前提是它是表的主键)。然后在引用 ID = 0 的“子”表中插入一行,并从该子表中删除用户的所有更新/删除权限。

现在,如果有人尝试删除“父”表中 ID = 0 的行,则由于另一个表中存在子行,该行将会失败。

使用此模式,您可以“保护”父表中的任何 ID 不被删除。

关于mysql - 如何防止删除 MySql 中的默认行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5132249/

相关文章:

ruby-on-rails - 更智能的回形针验证

Javax.Validation - 允许 null 但如果值不是则验证

mysql - 如何区分异常

MySQL - 如何按投票总和进行连接和排序?

php - 是否可以为这个作业 : select, 编写一个 sql 查询然后比较然后插入/更新

mysql - 查询多对多,其中连接表上只有 1 个结果

c# - 调用标量值函数时,ExecuteScalar 始终返回 null

php - 获取每小时插入数据库的行数

validation - 服务器端验证

mysql - MySQL什么时候会对带有order by子句的查询应用索引条件推送?为什么?