Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/8.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.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
Mysql关系相关行未正确更新_Mysql_Relational Database - Fatal编程技术网

Mysql关系相关行未正确更新

Mysql关系相关行未正确更新,mysql,relational-database,Mysql,Relational Database,当p_操作员的OPID状态为1时,则会出现问题 n\u通知表1中的所有状态行 我希望它只更新相关的op_id状态 `p_operators` ( `opID` int(10) unsigned NOT NULL AUTO_INCREMENT, `status` tinyint(4) NOT NULL DEFAULT '0', PRIMARY KEY (`opID`), KEY `status` (`status`) ) ENGINE=InnoDB; `n_notify` (

当p_操作员的OPID状态为1时,则会出现问题 n\u通知表1中的所有状态行 我希望它只更新相关的op_id状态

`p_operators` (
  `opID` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `status` tinyint(4) NOT NULL DEFAULT '0',
  PRIMARY KEY (`opID`),
  KEY `status` (`status`)
) ENGINE=InnoDB;

`n_notify` (
  `id` int(10) NOT NULL AUTO_INCREMENT,
  `op_id` int(10) unsigned NOT NULL,
  `email` varchar(155) NOT NULL,
  `status` tinyint(4) NOT NULL DEFAULT '0',
  PRIMARY KEY (`id`),
  KEY `status` (`status`),
  KEY `op_id` (`op_id`)
) ENGINE=InnoDB ;

ALTER TABLE `n_notify`
  ADD CONSTRAINT `n_notify_ibfk_2` FOREIGN KEY (`op_id`) REFERENCES `p_operators` (`opID`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `n_notify_ibfk_1` FOREIGN KEY (`status`) REFERENCES `p_operators` (`status`) ON DELETE CASCADE ON UPDATE CASCADE;


p_operators values
opID    status
5   0
13  1

n_notify values
id  op_id   email   status
2   13  XX  1
3   5   XX  1

您的第二个约束将
p_操作符中的
status
链接到
n_notify
中的
status
,这当然意味着更改
p_操作符中的状态会更改
n_notify
中的
status
的所有值

由于您不希望将状态级联到自身,而是希望按id来级联行的状态,因此不需要约束,只需要触发器

经验法则:

  • 如果只需要一个字段,请使用约束
  • 如果需要两个或多个字段(标识id、更改状态),请使用触发器

感谢您的合作,尤金。有很多op_id。如果你能举个例子,我很感激。