在我的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/