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


我将让该查询为我的表表中的每一行生成。

最佳答案

我能够让查询针对每一行生成,而不是使用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';

关于mysql - 使用常规数据从表更新表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36054929/

10-15 10:04