我正在使用phpmyadmin for mysql。我有4个表格project1,project2,project3和结合表。假设联合表使用外键连接到所有其他表,并且借助一些后台脚本将一些数据添加到project1,prject2和project3表中。有没有办法自动更新联合表中的相应外键(无需手动更新记录)。我正在使用GUI的yii框架。 请推荐一些方法,因为我是mysql和yii框架的新手。与外键相关的表彼此同步
0
A
回答
0
http://dev.mysql.com/doc/refman/5.6/en/create-table-foreign-keys.html
没有完全理解你的问题,但我想你指的是ON DELETE
和ON UPDATE
。
ON DELETE
& ON UPDATE
选项
CASCADE
SET NULL
NO ACTION
RESTRICT
ON DELETE & ON CASCADE被放置为在FK表约束并且当父ID被删除或更新它们发生。
因此,如果您更改了项目表中的ID并且希望将此更改反映到联合表中,那么您可以使用ON UPDATE CASCADE
。
作为一个便笺,为什么你有4张桌子?我只能看到需要2张桌子。
请注意,下面的SQL可能在语法上不正确。
CREATE TABLE tbl_projects (
id integer NOT NULL PRIMARY KEY AUTO INCREMENT,
name varchar(255),
...
...
);
方法1的组合表中创建的每个项目中的一行:通过设置外
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
);
您可以通过GUI在phpMyAdmin也这样做:
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
);
方法2键作为索引,通过点击按钮,然后进入表关系视图并选择你的选项。
希望这会有所帮助 - 我附加了一个phpmyadmin图像供您查看。
相关问题
- 1. 与关联表相同的外键?
- 2. 创建2个彼此相关的外键
- 3. 与外键相同的表
- 4. 彼此相关的python类
- 5. Python,彼此相关的列表
- 6. MS Sync 2.1与外键的同步表
- 7. nhibernate joinqueryover无关表(相同的外键)
- 8. 移至表彼此相邻
- 9. FPDF表彼此相邻
- 10. 你如何保持两个相关但独立的系统彼此同步?
- 11. 与MS Sync框架同步相关表
- 12. 彼此相关的协议方法
- 13. html表格不会彼此相邻,而是彼此垂直
- 14. LinearLayout彼此相邻
- 15. UITableViewCell彼此相邻
- 16. 外键参考相同表
- 17. 彼此相邻的表格行
- 18. 列表中的元素彼此相乘
- 19. 多位开发人员将CouchDB与彼此保持同步
- 20. 创建彼此相关的3个下拉列表
- 21. 访问数据库 - 同一表中的两个外键与相同的主键相关
- 22. 外键相同的主键
- 23. 与ntp同步相关的JDBC池?
- 24. 提取不同表格中的列并彼此相邻显示
- 25. SymmetricDS - 无法与外键同步行
- 26. 与相同型号的外键的CakePHP HABTM关系
- 27. 如何让两个表彼此相处?
- 28. css定位表彼此相邻
- 29. 如何将表格行彼此相邻?
- 30. 将两个表格彼此相邻
看一看存储过程http://www.mysqltutorial.org/mysql-stored-procedure-tutorial.aspx – AgeDeO