0

データベースの一貫性を確保するために、すべてのテーブルの最後の列のタイプを にバッチ設定したいと思いますTINYINT(1) UNSIGNED NOT NULL

テーブルをループして最後の列をターゲットにし、そのタイプを変更してフラグを設定する方法を見つけましたが、フラグNOT NULLを設定する方法が見つかりませんUNSIGNED

私は両方を試しました:

column = grt.root.wb.doc.physicalModels[0].catalog.schemata[0].tables[1].columns[7]
column.flags = ['UNSIGNED']
column.simpleType.flags = ['UNSIGNED']

しかし、私はTypeError: flag is read-only. UNSIGNEDまた、列の dataType プロパティを、フラグ (GUI で定義)を持つ列の dataType プロパティへの参照に設定しようとしました。

最後に試しました:

column.setParseType('TINYINT(1) UNSIGNED')

しかし、それは0を返し、何も変更しません(削除すると1を返すUNSIGNEDので、フラグでは機能しないと思います)。

MySQL Workbench で Python スクリプトを使用して列フラグ (例: UNSIGNED、 ) を変更する方法はありますか?ZEROFILL

4

3 に答える 3

0

追加する列は whit column.isNoNull=1 です

# -*- coding: utf-8 -*-
# MySQL Workbench Python script
# <description>
# Written in MySQL Workbench 6.3.4

import grt
#import mforms

# get a reference to the schema in the model. This will get the 1st schema in it.
schema = grt.root.wb.doc.physicalModels[0].catalog.schemata[0]
# iterate through all tables
for table in schema.tables:
    # create a new column object and set its name
    column = grt.classes.db_mysql_Column()
    column.name = "auditoria_fecha_creacion"
    # add it to the table
    table.addColumn(column)
    # set the datatype of the column
    column.setParseType("TIMESTAMP", None)
    column.defaultValue = "CURRENT_TIMESTAMP"
    column.isNotNull=1
于 2016-01-15T05:08:01.710 に答える