Baseでプライマリーキーの自動採番をリセットするには

Base

Base上データベースシステムを新規に開発する人はテーブルを作成し、そこにデータを登録し、フォームやクエリー、そしてレポートなどのオブジェクトを作成していろいろテストを重ね、完成した後に本稼働のため、テーブル内のデータを一度クリアした上で業務担当者にデータベースファイルを渡すことがあります。この場合、プライマリーキーを自動採番で登録する仕組みを取っているテーブルはレコードを全て削除した後に、自動採番の値を0に戻すことができたらいいな、と思いませんか?ここでは自動採番の値をリセットする方法をお教えします。

なお、この記事ではテーブル作成等の操作法を説明していません。詳しい操作法についてはBase教室の「Base 中級」コースを参照して下さい。

例として下図のような構成のテーブル「Fruits」を想定します。フィールド1行目の「ID」はプライマリーキーで、フィールドの属性で「自動値」を「はい」に設定しています。フィールド2行目は名称を入力する「Name」です。

下図はテーブル「Fruits」にデータを6レコード登録した状態です。「ID」列には0から5までの値が採番されているのが確認できます。

次に、このテーブル「Fruits」のレコードを全て削除します。最初にID=0の行をクリックし、次に[Shift]キーを押しながらID=5の行をクリックすると下図のように全ての行が選択されます。

この状態でメニュー「編集>レコードの削除」を選択すると、下図のようにダイアログボックス「確認」が表示されますので、ボタン[はい]をクリックします。

すると、下図のようにテーブル「Fruits」の全てのレコードが削除されて初期状態になります。

次に、改めてデータを登録するため、1行目の「Name」列に「白桃」と入力して[Tab]をクリックした状態が下図です。「ID」列の値は6になっています。これはBaseのシステムが自動採番の最終値である5を記憶していて、その値に1を加算して採番しているためです。

こうしたBaseの自動採番機能を0から開始するようにリセットすることにします。まず、上図で登録されたID=6のレコードを削除してテーブル「Fruits」を下図のように初期状態にしてからテーブルを閉じて下さい。

下図のようにメニュー「ツール>SQL」を選択します。

すると、下図のようにダイアログボックス「SQLステートメントを実行する」が表示されますので、「実行コマンド」欄に下記のSQL文を入力し、ボタン[実行]をクリックします。
<SQL
>
ALTER TABLE “Fruits” ALTER COLUMN “ID” RESTART WITH 0;

(注)下図の「実行コマンド」欄のSQL文の色はBaseシステムにより自動的に着色されたものです。

すると、「状態」欄に「1.コマンドは正常に実行されました」と表示されますので、ボタン[閉じる]をクリックします。

改めてテーブル「Fruits」を開き、1行目の「Name」列に「白桃」と入力して[Tab]をクリックした状態が下図です。今度は「ID」列の値が0になっているのが確認できます。

今回は自動採番の初期値を0にしましたが、都合により0以外の値を設定することも可能です。下記のようなSQL文を入力すると、初期値は501となります。

<SQL>
ALTER TABLE “Fruits” ALTER COLUMN “ID” RESTART WITH 501;

(注)今回紹介したSQL文はクエリーの「SQL表示でクエリーを作成」を使って実行しようとするとエラーが表示されて実行されません。必ずメニュー「ツール>SQL」で実行して下さい。

タイトルとURLをコピーしました