TECHNOLOGY

FAQ (よくある質問)

QUESTION ( SQ1108109 )

INSERT文を実行した際に、デフォルト値を GLOBAL AUTOINCREMENT として定義したカラムでエラーが起こりました。
「テーブル ‘xxx’ のカラム ‘yyy’ を NULL にすることはできません」
(SQLCODE=-195、 ODBC 3 状態=”23000″)

ANSWER

原因:

データベース・オプションの global_database_id オプションがデフォルト値(2147483647)であるとき、カラムの値に GLOBAL AUTOINCREMENT を定義されていた場合、グローバル・オートインクリメント値を生成しようとすると、そのカラムにはNULLがセットされます。
この為、NULLを受け付けないカラムでは、上記のエラーが発生します。
(NULLを許可しているカラムではNULLがセットされます。)

対処方法:

global_database_idオプションにデフォルト値以外の値(例えば 0)を設定してください。

詳細につきましては以下のオンラインマニュアルをご参照下さい。
SQL Anywhere サーバ – データベース管理 >> データベースの設定 >> データベース・オプション >> データベース・オプションの概要 >> アルファベット順のオプション・リスト >> global_database_id オプション [データベース]