0

テーブルのデータ型を変更する方法を調査しましたが、その方法は理解していますが、機能させることができません。次のコマンドを使用して、APP 内でテーブル Person を更新しようとしています。

ALTER TABLE APP.PERSON ALTER uName varchar;

私がこれまでに試したこと:

  • Modify を使用しましたが、エラーを受け取った後、これは実際には ALTER である必要があることに気付きました。
  • uName を UNAME に変更します。
  • varchar2 のデータ型に変更します。
  • 最後にデータ型 '(20)' と 'NOT NULL' のサイズを追加します。

どこが間違っていますか?私は Mac OS X で実行されている Netbeans 7.3 Beta 2 を使用しています。これはすべて Netbeans の SQL コマンド セクション内で行われ、問題がある場合は Java-DB をデータベースとして使用します。

4

3 に答える 3

2

ここSOですでに回答されています。基本的に、目的のデータ型で新しい列を作成し、古い列を削除する必要があります。ただ、Apache Derby の docを調べてみるとコマンドがあるSET DATA TYPEので、みたいなのを試してみてください

ALTER TABLE APP.PERSON ALTER UNAME SET DATA TYPE VARCHAR(30)

編集

上記のコードが機能しない場合は、前に提案したように列を再作成するだけです。

ALTER TABLE APP.PERSON ADD COLUMN UNAME_NEW VARCHAR(30);
UPDATE APP.PERSON SET UNAME_NEW = UNAME;
ALTER TABLE APP.PERSON DROP COLUMN UNAME;
RENAME COLUMN APP.PERSON.UNAME_NEW TO UNAME;
于 2013-01-28T20:05:08.777 に答える
1

テストするJavaDBはありませんが、ドキュメントによるとそうあるべきです。

ALTER TABLE APP.PERSON ALTER uName SET DATA TYPE VARCHAR(20)
于 2013-01-28T20:08:43.217 に答える
1

ほとんどのデータベースでは、 などの DDL (データ定義言語) コマンドを使用するために特定の権限が必要ですALTER TABLE。多くの場合、アプリケーション層で使用される DB 資格情報には、データベースでの DDL 権限がありません。

使用している接続に実行権限があることを確認しますALTER TABLE。実際にそうである場合は、使用している特定のコードと特定のエラー メッセージを投稿してください。

于 2013-01-28T20:03:23.707 に答える