查询以获取Schema / DB中具有特定列VALUE的所有表

时间:2019-06-07 16:15:06

标签: sql db2-luw

是否存在查询以显示具有特定列VALUE的所有表?

我知道如何获取具有特定列的所有表,但是我想扩展它以找到特定值,然后更新相应的结果以更改该值。

ForeignKey

然后我想对结果表进行更新,以更新“ START_DATE”值列,如下所示

class AdSpot(models.Model):

    title_max_chars = models.IntegerField(default=22)

class Copy(models.Model):
    adspot = models.ForeignKey(AdSpot, on_delete=models.PROTECT)

    default_length = 255
    for field in AdSpot._meta.fields:
        if field.name == 'title_max_chars':
            default_length = field.default
    title = models.CharField('Name', max_length=default_length, default='') # default value of title_max_chars (22 this case) from AdSpot will be set as a max_length of title

2 个答案:

答案 0 :(得分:0)

您需要编写一个使用动态SQL的应用程序才能实现这一目标。 Db2有许多不同的接口,使您可以执行此操作,包括嵌入式SQL,CLI,ODBC,Python,Perl等。

https://www.ibm.com/support/knowledgecenter/en/SSEPEK_11.0.0/intro/src/tpc/db2z_dynamicsqlapplications.html

答案 1 :(得分:0)

您可以编写存储过程或复合SQL。 使用您的SQL来收集所有具有START_DATE列的表,然后遍历此列表。 然后,您可以在循环中执行EXECUTE之类的操作

EXECUTE IMMEDIATE 'UPDATE ' || resolved_tablename || ' SET START_DATE="<my_new_startdate>" WHERE START_DATE="2017-05-17"'