检查是否在更新mysql时插入值


Check is value inserted when update mysql

当我更新字段时,我想检查这个字段中插入的值是否相同。

这是我的桌子

id     region      region_manager_id
1      test1       rm1
2      test2       rm7
3      test3       rm9
4      test4       rm8
5      test5       rm3

现在,如果要更新region''umanager_id=rm1,其中id=3不应该是因为rm1已经为id=1分配了。所以当我更新一个字段时,如何检查同一个值已经插入另一行。在单个查询中是否可能?。

在region''umanager_id上使用唯一密钥,您可以通过错误代码检查重复的id。当mysql错误代码为1062时,这意味着重复条目。

if(mysqli_errno($Conn)==1062){
   error =  "duplicate entry error message";
}

在您的位置上,我会尝试两种方法,第一种是使用PHP,第二种是直接在您的数据库上。

第一:在您的PHP代码中,您可以尝试获取这样的查询:"SELECT id FROM table WHERE region''umanager_id='rm1';",如果此查询返回NULL,则您的region''umaanager_id尚未在表的其他行中使用。

第二:您可以使用外键和唯一键语句,使用此解决方案,如果您试图用现有的region_magnager_id键更改表,则数据库将引发错误。

我希望这会有所帮助。:-)