使用常规数据更新表中的表

时间:2016-03-17 08:17:50

标签: mysql sql

在我的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);

我将为表格表中的每一行生成此查询。

1 个答案:

答案 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';