2

データベース:POSTGRESQL

2 つの列 id、name を持つテーブル location_type があります。列名を削除し、郡、都市の 2 つの列を追加したいと考えています。しかし、エラーが発生し、その理由がわかりません。これは私が試したものです:

ALTER TABLE location_type
DROP COLUMN name;

ALTER TABLE location_type
ADD (county character varying(255) NOT NULL,
     city character varying(255) NOT NULL);

多分誰かが私が間違っていることを見ることができます。任意の提案をいただければ幸いです。ありがとう。

4

3 に答える 3

5

あなたの構文は間違っています。この[Doc]を試してください:

ALTER TABLE location_type
    ADD county character varying(255) NOT NULL,
    ADD city character varying(255) NOT NULL;
于 2012-04-12T11:47:29.687 に答える
3

これで試してください

ALTER TABLE location_type DROP COLUMN name;
ALTER TABLE location_type ADD county character varying(255) NOT NULL;
ALTER TABLE location_type ADD city character varying(255) NOT NULL;

また

ALTER TABLE location_type 
    DROP COLUMN name,
    ADD county character varying(255) NOT NULL,
    ADD city character varying(255) NOT NULL;

マニュアルページを確認する

于 2012-04-12T11:47:32.330 に答える
1

@Marco と @Erkan がすでにクリアしたものに加えて:

テーブルにすでにデータが入力されている (行がある) 場合、句NOT NULLなしで列を追加することはできません。別の値を指定しない限りDEFAULT、新しい行に値が追加されます。したがって、制約に矛盾します。NULLDEFAULT

DEFAULT古いバージョンの PostgreSQL (バージョン 8.0 より前) では、新しい列で句を使用できませんでした。列を追加し、入力してから設定する必要がありましたNOT NULL

于 2012-04-12T17:18:08.450 に答える