【发布时间】:2016-02-05 17:15:05
【问题描述】:
是否可以使用外键更新 mysql 表(使用 DataTables 显示)? 例如,我有两个表:
`table1`(`id`, `type`, `description`);
`table2`(`id`, `name`);
假设表格填充了:
[1, 1, 'description 1']
和
[1, 'type 1'],
[2, 'type 2']
我的 table1.type 字段是 Table2 的 id 字段的整数外键。我可以运行一个选择查询:
SELECT `table1`.`id`, `table2`.`name`, `table1`.`description`
FROM `table1`
LEFT JOIN `table2` ON
`table1`.`type` = `table2`.`id`;
然后,将其与 DataTables 一起显示以生成包含以下字段的表:table1.id、table2.name、table1.description
我可以通过以下方式从数据表中读取数据:
var $data = $('#myTable').DataTable();
var $row = $data.rows().data();
我想用新的 id 更新外键。
我的第一个想法是执行 MySQL UPDATE,但这会出错,因为 table1 中不存在 name(仅对 table2.id 的外键引用)
如果来自 $data.rows().data() 的返回值显示字符串 name 字段而不是来自 table2 的整数 id,我将如何更新外键引用(来自前面提到的 SELECT 语句)?
小提琴:https://jsfiddle.net/ns6zahpc/1/
编辑:有没有办法在同一个单元格中同时显示整数 id 值和字符串名称值?
【问题讨论】:
-
你试过在你的选择查询中添加外键的id吗?如何更新 table1 的
type列? -
@dunli 我已经使用内部 SELECT 语句找到了解决问题的方法: UPDATE table1 SET
type= ( SELECT id FROM table2 WHERE name = 'type 2' ) WHERE table1.id = 1
标签: jquery mysql datatables