条件に該当するデータが存在しない時だけ登録するSQL

条件に該当するデータが存在しない時だけ登録するSQL insert into [テーブル名] (フィールド名) select 登録する値 where NOT EXISTS (select 1 from [テーブル名] w …

Continue reading ‘条件に該当するデータが存在しない時だけ登録するSQL’ »

FirebirdでRows句を利用して指定した範囲の行を取得する

Firebirdでは、指定した件数のみ取得したいときはROWS句を使用します。 SELECT <columns> FROM … ROWS 取得件数 たとえば次のように記述します。 SELECT * FRO …

Continue reading ‘FirebirdでRows句を利用して指定した範囲の行を取得する’ »

LibreOffice 4.2のBaseでFirebird Embeddedが使用可能になりました。

LibreOffice 4.2のBaseでFirebird Embeddedが使用可能になりました。 初期設定では使用できませんので、次のように設定を変更します。 メニューの「ツール」→「オプション」を選択します。 「L …

Continue reading ‘LibreOffice 4.2のBaseでFirebird Embeddedが使用可能になりました。’ »

FirebirdのINSERT文で追加されたIDを取得するには

Firebird 2.0以降では、INSERT文にRETURNING句を加えることで、追加されたIDを取得できます。 INSERT INTO t1 (id, …) VALUES (next value for gen …

Continue reading ‘FirebirdのINSERT文で追加されたIDを取得するには’ »

Windows 8の64bit版にFirebirdをインストールする

Windows 8 64bit版にFirebird 2.5.2 64bit版をインストールして、開発環境を整える手順をまとめました。 firebirdのDOWNLOADSのページからインストーラをダウンロードします。 6 …

Continue reading ‘Windows 8の64bit版にFirebirdをインストールする’ »

Firebirdデータベースをgbakでバックアップ・リストアする

Firebirdデータベースをgbakでバックアップ・リストアする方法。 よく使うものだけを抜粋。 (1)バックアップ 基本的な使い方 gbak -B -USER ユーザー名 -PASSWORD パスワード バックアップ …

Continue reading ‘Firebirdデータベースをgbakでバックアップ・リストアする’ »

Firebirdのテーブルやフィールドにコメントをつける

FirebirdのCOMMENT文を使用すると、テーブルやフィールドにコメントをつけることができます。 COMMENT文の構文はこちら 使用例 create table USERS ( ID integer primar …

Continue reading ‘Firebirdのテーブルやフィールドにコメントをつける’ »

FirebirdでCheck制約に正規表現を使用する

Firebird 2.5ではCheck制約に「SIMILAR TO」で正規表現を使用することができます。 正規表現に使用できるメタ文字 [ ] ( ) | ^ – + * % _ ? { 例 create table t …

Continue reading ‘FirebirdでCheck制約に正規表現を使用する’ »

Firebirdのunion演算子の結果に対してorder byで並び替える

Firebird 2.5で、union演算子の結果に対してorder byで並び替えるために、次のようなSQLを書いたらエラーになった。 select C1, C2, C3 from T1 union all selec …

Continue reading ‘Firebirdのunion演算子の結果に対してorder byで並び替える’ »

FirebirdでCURRENT_TIMESTAMPを使ってTIMESTAMP型の列のデフォルト値に現在の日時に指定する

CURRENT_TIMESTAMPは現在の日時をTIMESTAMP型で返します。 select CURRENT_TIMESTAMP from rdb$database テーブルを定義する時に列のデフォルト値としてCURR …

Continue reading ‘FirebirdでCURRENT_TIMESTAMPを使ってTIMESTAMP型の列のデフォルト値に現在の日時に指定する’ »