可能的重复项:
如何防止删除表中的第一行(PostgreSQL)?
我有一个表用户,其中我的第一行是管理员,如下所示
guid | username | password | firstname | lastname | location | emailaddress | userrole
-----------------------------------+----------+----------------------------------+-------------------+-----------+----------+---------------+---------------
2644885344cecd6f2973b35.63257615 | admin | 21232f297a57a5a743894a0e4a801fc3 | System | Generated | | | administrator
11980380874dc3b542363526.78672935 | gds | a5f9a8e4d375eb82ca70f7ab7b08ec7c | gag | gsdg | dsf | fdsf@fdsd.jgh | administrator
(2 rows)
任何人都可以向我查询我的第一行管理员永不删除......意味着这个
如果用户去删除,则无法删除,然后警报生成"不删除"
管理员"
nd如果用户想要删除第2,第3,第4行或任何其他行,那么它是可能的.....我正在使用PHP
你为什么不简单地使用下面的 mysql 查询...
DELETE FROM users_tbl WHERE id = 2 AND username != 'admin';
它永远不会删除管理行。
在表上定义一个触发器,该触发器与 Before delete 事件相关联,该事件调用存储过程,您可以在其中检查他们要删除的 ID 与您存储在数据库中的 ID 以供管理员使用。如果它们匹配,则引发异常以阻止 postgresql 执行实际删除。