-190 THE ATTRIBUTES SPECIFIED FOR THE COLUMN table-name.column-name ARE NOT COMPATIBLE WITH THE EXISTING COLUMN DEFINITION
説明
ALTER TABLE ステートメントに指定されている列の属性に、既存の列の属性との互換性がありません。
- table-name
- 表の名前。
- column-name
- 列の名前。
このエラーの原因としては、以下のことが考えられます。
- 互換性がないデータ・タイプ
- ALTER TABLE ALTER COLUMN SET DATA TYPE ステートメント
では、次に示すデータ・タイプの列のみを変更できます。
- 文字
- 数値
- バイナリー
SET DATA TYPE 文節が指定された場合、既存の列は、指定された新規データ・タイプと矛盾しているか、変更できないタイプのデータです。
- 必須 ID 列
- ID 列として定義されている列にのみ指定できる文節を次に示します。
- RESTART
- SET GENERATED
- SET INCREMENT BY
- SET MINVALUE および SET NO MINVALUE
- SET MAXVALUE および SET NO MAXVALUE
- SET CYCLE および SET NO CYCLE
- SET CACHE および SET NO CACHE
- SET ORDER および SET NO ORDER
上記のいずれかの文節が指定されている場合、既存の列が ID 列として定義されていません。
- デフォルト値
- SET DEFAULT 文節または DROP DEFAULT 文節が指定されている場合、既存の列が次のいずれかです。
- デフォルト値が定義されていないか、または列の NULL 属性として NOT NULL が指定されている。
- ID 列、ROWID、または行変更タイム・スタンプ列として定義されている。
- ROW BEGIN、ROW END、または TRANSACTION START ID 列の変更
- 列を ROW BEGIN、ROW END、または TRANSACTION START ID 列に変更する ALTER COLUMN が指定されている場合、次のいずれかです。
- この列は生成された列として既に定義されている。
- この列はユーザー指定デフォルト値を使用して既に定義されている。 デフォルト値を削除する ALTER TABLE ステートメントを発行してください。これで、列定義を変更できます。
システムの処置
このステートメントを処理することはできません。
プログラマーの応答
SQL ステートメントの内容を確認し、適切な処置をとり、ステートメントを再実行依頼してください。
- ステートメントを変更し、変更対象列に対して指定されている属性が、既存の列定義と互換性があるものにするようにしてください。
- 互換性がない属性の指定を除去してください。
- 別の列を指定してください。
SQLSTATE
42837