首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >与外键相关的表相互同步

问与外键相关的表相互同步
EN

Stack Overflow用户
提问于 2013-07-11 15:25:45
回答 1查看 135关注 0票数 0

我正在使用mysql的phpmyadmin。我有4个表project1,project2,project3和组合表。假设combine表通过外键连接到所有其他表,并且我们在一些后台脚本的帮助下向project1、prject2和project3表添加了一些数据。有没有办法自动更新组合表中相应的外键(无需手动更新记录)。我在GUI中使用了一个yii框架。请建议一些方法,因为我是mysql和yii框架的新手。

EN

回答 1

Stack Overflow用户

发布于 2013-07-11 21:42:00

http://dev.mysql.com/doc/refman/5.6/en/create-table-foreign-keys.html

我不完全理解你的问题,但我认为你指的是ON DELETE和ON UPDATE。

ON DELETE和ON UPDATE选项

代码语言:javascript
复制
CASCADE
SET NULL
NO ACTION
RESTRICT

ON DELETE & ON CASCADE作为约束放置在FK表中,它们在父ID被删除或更新时发生。

因此,如果您更改了projects表中的id,并且希望此更改反映在combine表中,则可以使用ON UPDATE CASCADE。

顺便说一句,为什么你有4张表?我只看到需要两张桌子。

请注意,下面的SQL可能在语法上不正确。

代码语言:javascript
复制
CREATE TABLE tbl_projects (
  id integer NOT NULL PRIMARY KEY AUTO INCREMENT,
  name varchar(255),
  ...
  ...
);

方法1在组合表中为每个项目创建一行:

代码语言:javascript
复制
CREATE TABLE tbl_combine (
  id integer NOT NULL PRIMARY KEY AUTO INCREMENT,
  project_id integer,
  ...
  CONSTRAINT `FK_combine_project` 
      FOREIGN KEY (`project_id`) 
      REFERENCES `tbl_project` (`id`)
      ON DELETE CASCADE ON UPDATE CASCADE
);

方法二:

代码语言:javascript
复制
CREATE TABLE tbl_combine (
  id integer NOT NULL PRIMARY KEY AUTO INCREMENT,
  project1_id integer,
  project2_id integer,
  project3_id integer,
  ...
  CONSTRAINT `FK_combine_project1` 
      FOREIGN KEY (`project1_id`) 
      REFERENCES `tbl_project` (`id`)
      ON DELETE CASCADE ON UPDATE CASCADE

  CONSTRAINT `FK_combine_project2` 
      FOREIGN KEY (`project2_id`) 
      REFERENCES `tbl_project` (`id`)
      ON DELETE CASCADE ON UPDATE CASCADE

  CONSTRAINT `FK_combine_project3` 
      FOREIGN KEY (`project3_id`) 
      REFERENCES `tbl_project` (`id`)
      ON DELETE CASCADE ON UPDATE CASCADE
);

您也可以通过phpmyadmin中的GUI完成此操作,方法是单击一个按钮将外键设置为索引,然后转到表关系视图并选择您的选项。

希望这对你有所帮助--我附上了一张phpmyadmin图片给你看。

​

​

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17587427

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档