- PR -

HSQLDBの IF NOT EXISTS について

1
投稿者投稿内容
linlin
会議室デビュー日: 2006/03/17
投稿数: 14
投稿日時: 2006-04-13 05:07
現在、HSQLDBを活用し、Webシステムを構築しているのですが、
テーブルを作成する際に、すでにデーブルが作成しているときは、
作成しないような処理を追加したいのですが、うまくいきません。

Mysqlの場合
CREATE DATABASE IF NOT EXISTS db_name
というものがあるのですが、

よろしくお願いします。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-04-13 07:23
引用:

linlinさんの書き込み (2006-04-13 05:07) より:

テーブルを作成する際に、すでにデーブルが作成しているときは、
作成しないような処理を追加したいのですが、うまくいきません。
Mysqlの場合 CREATE DATABASE IF NOT EXISTS db_name というものがあるのですが、


DROP 文では使えますが、CREATE 文には使えないです。

ところで、CREATE DATABASE というのは正しいのでしょうか?
"テーブルを作成する際" とあるので、CREATE TABLE じゃないのでしょうか?

コード:

    SELECT
        *
    FROM
        SYSTEM_TABLES
    WHERE
        TABLE_NAME = '[存在を確認するテーブル名]'


_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
linlin
会議室デビュー日: 2006/03/17
投稿数: 14
投稿日時: 2006-04-13 10:16
じゃんぬねっとさん。早速の回答ありがとうございます。

>ところで、CREATE DATABASE というのは正しいのでしょうか?
>"テーブルを作成する際" とあるので、CREATE TABLE じゃないのでしょうか?
指摘のとおり、CREATE TABLE の間違いでした。

SELECT
*
FROM
SYSTEM_TABLES
WHERE
TABLE_NAME = '[存在を確認するテーブル名]'
でうまくいきました。
小文字でテーブル名を作成したところ、内部で大文字に
なっているようで、WHERE句では大文字でマッチしました。
(やはり、SQL文は大文字が基本のようですね。)

Drop table IF EXISTS tbl_name
もうまくいきました。

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

スキルアップ/キャリアアップ(JOB@IT)