例えば、
1.create table shinamono (hinmei text,nedan,int);
で作成済みのテーブルへbikou項目を追加するにはどうすればいいのでしょうか?
2.create table shinamono (hinmei text,nedan,int);
で作成済みのテーブルのnedanの項目を削除するには?
3.create table shinamono (hinmei text,nedan,int);
で作成済みのテーブルのnedanの項目名を修正するには?

上記の様な操作は出来るのでしょうか?
よろしくお願いいたします。

このQ&Aに関連する最新のQ&A

A 回答 (1件)

# PostgreSQLにそんなに詳しいわけではありませんが・・・。



まず、PostreSQLはSQL92準拠なので、項目の追加は下記の要領でできますので、1.は可能です。
alter table table名 add(カラム名 型(桁数));

ただし、項目の削除はできませんので、2.3.は不可能です。

3.までの操作をしたいのであれば、
1)PSQLでcopyコマンドを使用してDBの内容をサーバー上にテキストファイルで落とす。
2)テーブルをすべて削除して作り直す
3)PSQLのcopyコマンドを使って、DB内に1)で待避したデータを読み込ませる
で対処できるかと思います。

PSQLやcopyコマンドの詳細については、PostgreSQLの解説本の最初に載っていますので、そういった資料をご参照ください。
    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2001/03/09 16:38

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す

このQ&Aと関連する良く見られている質問

QOracleのCreate Table 文のStorage句

お世話になります。

OracleのCreate Table 文のStorage句のNextの値を
変更したいのですが、できるのでしょうか?

Alter Table文で変更するのでしょうか?
手元にマニュアルが無く困っております。

よろしくお願いします。

Aベストアンサー

alter table テーブル名 storage ( next 変更後のサイズ );

だっけかな?

QDB2 create tableコマンドでエラーになる

現在redhat9にdb2 v8を導入しています。
そこでテーブルを作成したいのですが、エラーとなりうまくいきません。
どこを修正すればテーブルが作成できるのか教えてください。
また、テーブル作成後に値を入れたいのですが、insertについてのコマンドのアドバイスもお願いします。

CREATE TABLE emp (empno INTEGER ,ename CHAR2(10) ,mgp INTEGER,sal NUMERIC(5,2) ,deptn INTEGER);

INSERT INTO EMP VALUES(221000,'TAYLOR',220000,880.60,220000);

よろしくお願いします。

Aベストアンサー

CREATE文を拝見した所、「ename」の列のデータ型が間違っています。

CHAR(10)かVARCHAR(10)になります。
CHARとVARCHARの違いが分からないようでしたら再度質問していただけると助かります。

おそらくOracleのVARCHAR型とVARCHAR2型が存在しているというところで混乱されているかと存しますが。。


INSERT文については特に問題はなのですが出来れば以下のように記述するとよろしいかと思います。


INSERT INTO EMPempno,ename,mgp,sal,deptn) VALUES(221000,'TAYLOR',220000,880.60,220000);

以上宜しくお願い致します。

QMySQLでCREATE TABLE

MySQLでCREATE TABLEをする際に、
プライマリキーを設定する場合は、
CREATE TABLE(
AAA CHAR(5) NOT NULL,
BBB CHAR(5) NOT NULL,
CCC VARCHAR(10) NOT NULL,
PRIMARY KEY(AAA)
);
のようにすると思うのですが、「BBB」を外部キーにしたい場合は、どうしたらいいのでしょうか?

Aベストアンサー

test1テーブルにAAA(主キー),BBB,CCC列、
test2テーブルにxxx(主キー),yyy,zzz列があると仮定します。

普通にselect文で

select xxx, CCC, yyy, zzz
from test1,test2
where test2.xxx = test1.BBB ;

と問い合わせればリレーション機能が実行されビューに表示されます。
内部結合も外部結合もSQLのデータ操作文(DML文)を使えばいいだけです。

違うテーブルに同じ列名がある場合は、列名の前にテーブル名.が必要です。
同じ列名がない場合は付けても付けなくても構いません。

また、なにか意図があって主キーを2つ設定したいのであれば、
PRIMARY KEY(AAA) の部分を
PRIMARY KEY(AAA,BBB) にしてみてはいかがでしょうか?
検索スピードを考えているのであればインデックスを付加するとか。
意味が違っていたらすみません。

ちなみにCREATE TABLEはSQLのデータ定義文(DDL文)です。

test1テーブルにAAA(主キー),BBB,CCC列、
test2テーブルにxxx(主キー),yyy,zzz列があると仮定します。

普通にselect文で

select xxx, CCC, yyy, zzz
from test1,test2
where test2.xxx = test1.BBB ;

と問い合わせればリレーション機能が実行されビューに表示されます。
内部結合も外部結合もSQLのデータ操作文(DML文)を使えばいいだけです。

違うテーブルに同じ列名がある場合は、列名の前にテーブル名.が必要です。
同じ列名がない場合は付けても付けなくても構いません。

また、なに...続きを読む

QCREATE テーブルでの複数外部キーの設定

MySQL5.1で、1つの表に複数の外部キーを持つとき、
CREATEテーブル発行の仕方について教えてください。

1、以下表3つ作成
得意先表
{得意先コード(主),得意先名}

注文表
{年月日,得意先コード(外),商品コード(外),数量}
※得意先コード、商品コードに、on delete cascadeをつける。

商品表
{商品コード(主),商品名,商品区分コード(外),単価}

の三つの表があります。


質問)、注文表に、2つの外部キー(得意先コード・商品コード)を設定したいと思っています。
CREATE TABLE IF NOT EXISTS `注文表` (
`注文日` date DEFAULT NULL,
`得意先コード` varchar(10) DEFAULT NULL REFERENCES 得意先表(得意先コード) on delete cascade,
`商品コード` varchar(10) DEFAULT NULL REFERENCES 商品表(商品コード) on delete cascade,
`数量` int(11) DEFAULT NULL
)

の外部キーを列制約で作成するのがいいのでしょうか?
表制約では、二つの外部キーを設定できないと思いましたので・・・。

ご教授お願いします。

MySQL5.1で、1つの表に複数の外部キーを持つとき、
CREATEテーブル発行の仕方について教えてください。

1、以下表3つ作成
得意先表
{得意先コード(主),得意先名}

注文表
{年月日,得意先コード(外),商品コード(外),数量}
※得意先コード、商品コードに、on delete cascadeをつける。

商品表
{商品コード(主),商品名,商品区分コード(外),単価}

の三つの表があります。


質問)、注文表に、2つの外部キー(得意先コード・商品コード)を設定したいと思っています。
CREATE TABLE IF NOT EXISTS `注文表` (
`注文...続きを読む

Aベストアンサー

表制約でも出来ますよ。
CREATE TABLE `注文表`
(
`注文日` date DEFAULT NULL,
`得意先コード` varchar(10) DEFAULT NULL ,
`商品コード` varchar(10) DEFAULT NULL ,
`数量` int(11) DEFAULT NULL,
FOREIGN KEY( `得意先コード` ) REFERENCES 得意先表(得意先コード),
FOREIGN KEY( `商品コード` ) REFERENCES 商品表(商品コード)
);

Qテーブル、インデックスのCREATE文について

ObjectBrowserを使用すると標記のソースが参照できますが、これをデータディクショナリから拾おうとするとどのようなSQLでできるのでしょうか?

マニュアル等いろいろ調べましたところ、各情報を項目として捕まえることはできそうなのですが、CREATE文として取得する方法は探し当てれませんでした。

どなたかご存知の方、よろしくお願いします。

Aベストアンサー

各項目をとってきて、ObjectBrowserがつなげてるだけだと思います。

フィールド数などはフェッチしないとわからないので、
これをSQLで全部連結するのは不可能です。


このカテゴリの人気Q&Aランキング

おすすめ情報