在我的MySQL数据库(5.X)中,我有一个表,其中存储了关于所有其他表的信息(下一个id等)。 是否可以像这样更新此表? 在我的表“tables”中有一个字段“tableName”和“nextId”。我想做点什么:
UPDATE tables SET nextId = (SELECT MAX(id) FROM tables.tableName);
编辑: 我现在知道无法动态确定表名。 但是,我可以为每一行做吗?我可以轻松地让所有查询自动生成。 那样的话呢:
UPDATE tables SET nextId = (SELECT MAX(id) FROM tableX);
我将为表格表中的每一行生成此查询。
答案 0 :(得分:0)
我能够为每一行生成查询,而不是在Excel中使用一些简单的VBA进行一次大查询:
Sub generate()
For i = 1 To 107
Cells(i, 3) = "update tables set nextId = (select max(id) from " & Cells(i, 2) & ") + 1 where soort = '" & Cells(i, 2) & "';"
Next i
End Sub
这导致了107个像这样的查询:
update tables set nextId = (select max(id) from table_name) + 1 where tableName = 'table_name';