查询我的第一行管理员永不删除


query for my first row admin for never delete

可能的重复项:
如何防止删除表中的第一行(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 执行实际删除。