Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 防止更新数据库行中的多个列_Php_Mysql_Database_Phpmyadmin - Fatal编程技术网

Php 防止更新数据库行中的多个列

Php 防止更新数据库行中的多个列,php,mysql,database,phpmyadmin,Php,Mysql,Database,Phpmyadmin,我希望通过触发器防止数据库行mysql中的两列更新,因为ex my table是mymy,这两列是column1和column2,行id是11。如何在mysql触发器中运行它 我试着这样做: CREATE TRIGGER 'no_update' BEFORE INSERT ON 'mymy' FOR EACH ROW BEFORE UPDATE , then check if NEW.column1 != OLD.column1 OR NEW.column2 != OLD.column2

我希望通过触发器防止数据库行mysql中的两列更新,因为ex my table是mymy,这两列是column1和column2,行id是11。如何在mysql触发器中运行它

我试着这样做:

CREATE TRIGGER 'no_update' BEFORE INSERT ON 'mymy' 
FOR EACH ROW BEFORE UPDATE , then check if NEW.column1 != OLD.column1 OR NEW.column2 != OLD.column2 
我有一个错误:

1064-您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,以了解要使用的正确语法 在更新之前“接近”,然后检查NEW.id\u relation!=旧身份证关系 或者是新的,活跃的在1号线


如何修复它?

如果你真的不想更新column1和column2的值,那么你可以使用触发器将新值设置为旧值,这样就永远不会更新它们-我相信这就是你想要的

CREATE TRIGGER test_trigger BEFORE UPDATE ON mymy
FOR EACH ROW BEGIN
  SET NEW.column1 = OLD.column1, NEW.column2 = OLD.column2
END

正在运行的更新这两个列的查询是什么?请尝试一下,并显示您已经完成了多少。手册中有很多示例。您可以在更新之前创建触发器,然后检查NEW.column1!=旧的.column1或新的.column2!=OLD.column2,引发应用程序错误,或通知user@TaylorGomez-已经向您解释了如何执行此操作,而不是您可以复制和粘贴的SQL代码。这个问题表明你对SQL和触发器语法比较熟悉。很明显,你自己编的语法,然后检查一下。。。这是完全错误的。你不能像和人说话那样和电脑说话。请在手册中查找正确的语法,然后重试。否决票是什么?-这难道不能回答你的问题吗?