列を挿入する方法

このQ&Aのポイント
  • 環境はxp、apache2、php5、Postgresql8.2です。1台のPCをサーバ&クライアントにしています。ただ今PHPとPostgresqlの勉強をしています。
  • pgadmin3で、「object」という列を「term」という列の後に追加したいと思い以下のSQLを発行しました。ALTER TABLE "m_lecture" ADD "object" text NOT NULL AFTER "term";
  • しかし、以下のようなエラーになります。ERROR: syntax error at or near ""term"" SQLステート:42601 文字:52
回答を見る
  • ベストアンサー

列を挿入したい

環境はxp、apache2、php5、Postgresql8.2です。 1台のPCをサーバ&クライアントにしています。 ただ今PHPとPostgresqlの勉強をしています。 pgadmin3で、「object」という列を 「term」という列の後に追加したいと思い 以下のSQLを発行しました。 ALTER TABLE "m_lecture" ADD "object" text NOT NULL AFTER "term"; 以下のようなエラーになります。 ERROR: syntax error at or near ""term"" SQLステート:42601 文字:52 ご教示して頂けたら幸いです。

  • wee
  • お礼率19% (62/318)

質問者が選んだベストアンサー

  • ベストアンサー
  • alphion
  • ベストアンサー率19% (27/136)
回答No.1

PostgreSQLは最後尾に追加することしかできなかった気がします。 ですので、'AFTER'以降はエラーになると思います。

wee
質問者

お礼

ご返事が遅れましてすいません。 大変に参考になりました。

関連するQ&A

  • 文字列を time 型に変換するには。

    文字列を time 型に変換するには。 お世話になります。 PostgreSQL 8.2 & PgAdmin 1.6.3(WinServer 2003)を使用しています。 varchar 型のカラムに格納されている時刻を表す文字列('9:15' など)を time 型に変換してビューを作成する必要があるのですが、できずに困っています。 具体的には... 「table1」というテーブルに「時刻」(varchar 型)という名前のカラムを作成し、「9:15」という文字列を格納しておきます。 これをもとにビュー(view1)を作ろうとしているのですが、select 文のところで 、ERROR: syntax error at or near "時刻" SQLステート:42601 というエラー(構文エラー)が出てしまいます。  select time 時刻 from table1  結果:ERROR: syntax error at or near "時刻" SQLステート:42601 ちなみに、時刻を文字列で指定してやると、ちゃんと time 型で結果が返ります。  select time '9:15'  結果:09:15:00 抜本的に方法が間違っているとはおもうのですが、いくら調べてもこれを解決できるようなサイトが見当たりませんでした。 文字列を time 型に変換するにはどのようにしたらよいのかご教示いただけないでしょうか。 よろしくお願いします。

  • SQL 照会を実行出来ない

    以下の照会を実行しようとしました。 mysql> alter table products_description add products_scientific varchar(255); すると、以下のようなエラーメッセージが出ます。 実行した SQL 照会: mysql & gt;  (& gt;はこのサイトの文字化けではなくこのように出ます。) ALTER TABLE products_description ADD products_scientific varchar( 255 ) MySQLのメッセージ --> #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'mysql> alter table products_description add products_scientific varchar(255)' at line 1 「>」が文字化けしているようなので「エンコーディングを変換する」の3つをそれぞれ試してみましたが変化無しです。 どのようにしたら良いでしょうか?

    • ベストアンサー
    • MySQL
  • ¥を含む文字列を挿入するとエラーとなります

    こんにちわ、よろしくお願いします。 OS:WindowsXP PostgreSQL:8.4.0 DBの文字コードはUTF8で構築しています。 【現象】 文字型のカラムに¥を含んだ文字列を挿入しようとすると以下のエラーになります。 WARNING: nonstandard use of escape in a string literal at character 331 SQL実行中に以下のエラーが発生しました。 ERROR: invalid byte sequence for encoding "UTF8": 0x00 エラーとなるのは例えば「C:\temp\hoge.txt」といった文字列です。 ただし、 「C:/temp/hoge.txt」 「C:\\temp\\hoge.txt」 とした場合は正常に挿入が出来ます。 8.1.11で同じプログラムを動かしているときは問題なく動作していました。 PostgreSQLを最新の8.4.0にバージョンアップしたところ上記のエラーが発生するようになりました。 エンコードの問題かと思い Postgresql.confのclient_encodingを色々設定してみましたが、解決しませんでした。 解決法が見当たらず困っています。 よろしくお願い致します。

  • postgreSQLのオートナンバーについて

    no | name | id  というテーブルがあります。 列名 no プライマリーキーにしています。ところがこのnoはオートナンバーではない為、オートナンバー型に変更 しようと以下のコマンドを発行しましたがエラーが出てしまってうまくいきません。 list=# ALTER TABLE server list-# no SERIAL list-# ; ERROR: syntax error at or near "no" at character 20 LINE 2: no SERIAL ^ もし、お分かりになる方がおりました教えていただけませんか? また、no name id という3つの列があるとしてid と name の順番を入れ替えたいのですがそんな コマンドってあるのでしょうか? verはpostgreSQL 8.0.1です。 よろしくお願いします。

  • Oracle テーブルの列削除

    タイトルの通りテーブル(test)の列(retu)を削除したいのですが・・・ Sql*pLUS画面 SQL> alter table test drop(retu); ←この用に入力 alter table test drop(retu) * エラー行: 1: エラーが発生しました。 ORA-00905: キーワードがありません。 となってしまい列を削除できません。 なにか構文の間違いでしょうか?

  • データ挿入

    MySQLでabevというテーブルにデータを挿入しようと INSERT INTO abev SET name='名前', story=10, music=10, voice=10, character=10, graphic=10, comment='コメント'; というSQL文を打ったのですが、 #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'character=10, graphic=10, comment='コメント'' at line 1 というエラーがでます。 idはオートインクリメントしてあるので省いています。 フィールド名のつづりも間違ってません。 いったいどこが悪いのでしょうか?

    • ベストアンサー
    • MySQL
  • MySQL 配列もどきを条件式に

    MySQL5.5です PostgreSQLからMySQLへ移行作業をしています PostgreSQLの配列型(文字)をMySQLのBLOB型にして格納しています {"ABC", "EFG"}といった形式で格納しているのですが 以下のSQL文をMySQLで使用できる形にしたいのです SELECT * FROM table WHERE Test[1] LIKE '%%' TestがPostgreSQLでの配列になります エラーメッセージは以下の通りです db_query error. You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '[1] like '%%' 以下のようにAS句で適当な名称を与えて引き出せないかと考えたのですが、「Unknown column 'tst'」となり取得することはできませんでした SELECT *, REPLACE(SUBSTRING(Test, 1, LOCATE(',',Test) - 1), '{', '') AS tst FROM table WHERE tst LIKE '%%'; 何か良い方法などありましたら教えてください、よろしくお願いします

    • ベストアンサー
    • MySQL
  • 重複を許すキーの構文がわかりません。

    データベース自体はPostgreSQLを使っています。そして、アクセス2003を使って、テーブルリンクで閲覧しています。 あるフィールドに検索が早くなるようにキーを設けたいのですが、 重複を許すキーの構文がわかりません。 PRIMARY KEY, UNIQUEの設定はわかるのですが、 どのように記述すればよいのでしょうか? 以下、アクセスのプロパティです。 インデックス ●いいえ デフォルト、無指定 ●はい(重複あり)[***** ここの部分のSQLが知りたい *****] ALTER TABLE テーブル名 ADD ???????? (フィールド); ●はい(重複なし)UNIQUE もしくは値要求混みのPRIMARY KEY ALTER TABLE テーブル名 ADD UNIQUE (フィールド); ALTER TABLE テーブル名 ADD PRIMARY KEY (フィールド);

  • 主キーを追加しようとするとエラー

    MYSQL4.0を使っていますが、 テーブル作成後、主キーを追加しようと ALTER TABLE MYTABLE ADD PRIMARY KEY ID; などと書くと、syntaxエラーになってしまいます。 どこが悪いのでしょうか、 分かる人がいましたら教えてください。

    • ベストアンサー
    • MySQL
  • PostgreSQLの「not null」制約の追加

    こんにちは。いつもお世話になります。 PostgreSQLのversion7.2.8で、「not null」制約の追加、削除の方法をおたずねします。よろしくお願いします。 ALTER TABLE テーブル名 ALTER COLUMN カラム名 SET NOT NULL; で試したところ、syntaxエラー(構文エラー)で失敗。 ALTER TABLE テーブル名 ALTER COLUMN カラム名 DROP NOT NULL; で試してみても、同じくsyntaxエラーです。 version7.2.8が原因でしょうか? また、version7.2.8でも「not null」制約の追加、削除が できる他の方法はありますでしょうか? テーブルを作り直さずに、 既存のテーブルのカラムへの制約の追加、削除をしようとしています。 よろしくお願いします。