Mysql 防止删除和更新数据库表行

Mysql 防止删除和更新数据库表行,mysql,phpmyadmin,Mysql,Phpmyadmin,我有一个数据库表,希望保护某些行不被删除和更新。我正在使用MySQL数据库。如何用phpmyadmin或sql语法修复它 EX:防止id为18的行被删除和更新: 您有多种选择 会话方式:如果您正在使用INNODB SET AUTOCOMMIT=0; UPDATE table SET mainpage =1 WHERE id = 18; -- do NOT commit until you want to release the lock. -- if you do that under myis

我有一个数据库表,希望保护某些行不被删除和更新。我正在使用MySQL数据库。如何用phpmyadmin或sql语法修复它

EX:防止id为18的行被删除和更新:


您有多种选择

会话方式:如果您正在使用INNODB

SET AUTOCOMMIT=0;
UPDATE table SET mainpage =1 WHERE id = 18;
-- do NOT commit until you want to release the lock.
-- if you do that under myisam, 
-- I think it is going to lock the whole table (to be verified)
结构保护


在更新/删除表之前创建触发器,并在使用此sql时引发错误:
:new.id=18

:创建表保留权限(权限id INT主键,外键(权限id)引用权限(权限id));在perserve_权限(permission_id)值中插入(1234)但我有错误:错误
SQL查询:创建表保留权限(权限id INT主键,外键(权限id)引用权限(权限id));MySQL说:#1005-无法创建表“mymy.preserve_permissions”(errno:150)(详细信息…)
您必须调整该问题中的代码以满足您的特定需求和情况。它应该用作模板,而不是逐字复制。密钥和外键需要具有相同的数据类型。我相信这就是这个错误的根源。我在“运行SQL查询/数据库mymy上的查询:”中复制了上述代码,并得到错误:
error SQL query:UPDATE TABLE SET mainpage=1,其中id=18;MySQL说:#1064-您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以了解第1行“table SET mainpage=1,其中id=18”附近使用的正确语法。你是说你没有更改表名吗?我错了。我在phpmyadmin上的sql框中运行它,并在相同的框中获得:
SET AUTOCOMMIT=0;#MySQL返回一个空的结果集(即零行)。触发的目的是什么?更新访问级别集主页=1,其中id=18;#MySQL返回一个空的结果集(即零行)。
触发器的用途是什么?请解释得更清楚些?触发器是一个可选选项。这将确保如果有人修改您想要的行,将出现错误,并且修改/删除将失败。