テーブルの構造編集
「テーブル」ではHMI で使用するテーブルを編集、保存することができます。
ここでのテーブルとは、データベース上に存在する表のことです。
この画面では選択されたテーブルの、カラムの設定(以下、カラム設定)を編集することができます。
最大カラム数は256です。
内容
テーブル設定
テーブル設定画面を表示します。テーブルの基本情報(ID,名称など)を確認と設定することができます。
テーブルデータ編集
テーブルデータ編集画面を表示します。 テーブルのデータを編集することができます。
カラムの追加
「カラムの追加」を押しカラムの編集エリアを1列追加します。
設定を保存する前に、テーブルにこの編集は反映されていません。
編集(内容)の破棄
現在保存されるテーブルのカラム設定を取得します。それまでに保存されなかった。編集内容は破棄されます。
編集中エラーが出た場合は、一度編集を破棄し、保存されているカラム設定を確認することを推奨します。
カラムの列
操作
ボタンを押して、選択したカラムの編集を保存します。
ボタンを押して、編集画面上から削除します。この編集は「構成を保存する」を押さない限り、実際にテーブルから削除されません。
カラム名
名前部をクリックすることでカラム名を変更することができます。名前には“ダブルコーテーション”や'シングルコーテーション'等の特殊文字、といくつかの予約文字(select, fromなど)を除く、 先頭に数値を除く小文字英数字と数値で名づけなければなりません。
また、同じカラム名を持つものを作成することはできません。
コメント
それぞれのカラムにコメントを設定できます。HMIの表部品で表示することが可能です。
“jp:XXX,en:XXX,zh:XXX”というフォーマットで多言語のコメントを設定することで、HMIの表で各言語に対応したコメントを表示することができます。
タイプ
カラムのデータ型を指定します。
設定されているカラムのデータ型を変更(以下、型変換)することができます。
設定出来るデータ型は"真偽","整数","実数","文字列","日付","時刻","日時"の7つです。それぞれ"boolean","int","float","text","date","time","timestamp"に対応します。
無効な型変換の場合、保存ができません。
型の変換の正否に関しては下の型変換早見表をご覧ください。
型変換早見表 変換される型 変換できる型 変換できるが値が保持されない 変換できない 真偽 文字列 数値 実数,日付,時刻,日時 整数 実数,文字列 真偽 日付,時刻,日時 実数 文字列 整数 真偽,日付,時刻,日時 文字列 真偽,数値,実数,日付,時刻,日時 ※1 なし なし 日付 文字列,日時 なし 真偽,整数,実数,時刻 時刻 文字列 なし 真偽,整数,実数,日付,日時 日時 文字列 日付,時刻 真偽,整数,実数 ※1 文字列からの型変換の場合、テーブルに格納されている値が、全て変換先の型とあっている必要があります。
属性
カラムの属性を変更できます。
「固有値」は他のレコードに同じ値がないことを指します。この設定を有効にするとそのカラムにおいて同じ値を持つレコードの作成を禁止します。しかしNULLは例外となります。いわゆるUNIQUE制約を付与します。
「主キー」はテーブル上のレコードを個別で判断するために用いられます。ここで「主キー」を有効にすると"_id_"との組み合わせが唯一であることを示します。また。NULLは入力できなくなります。詳しくは 作成されるテーブルについてをご覧ください。いわゆるPRIMARY制約を付与します。
デフォルト値
それぞれのカラムにデフォルト値を設定します。
デフォルト値とはテーブルに新たにレコードを追加する際に、値に指定がない時に挿入される値のことです。
ここの値を変更してもすでに存在しているテーブルのレコードの値は変更されません。
新たにカラムを追加した場合には、ここで設定したデフォルト値が全レコードに挿入されます。
デフォルト値には null を設定できません。必ず値を設定するようにしてください。
時間にかかわるカラムのデフォルト値には" now() "を設定することができます。" now() "は現在時刻を表します。
テーブルをCSVで保存
保存されているテーブルをCSV形式でダウンロードします。
テーブルの削除やテーブルのレコードの削除、もしくは推奨されない型変換を行う場合、一度csvファイルをバックアップとして保存することを推奨します。
キャンセル
保存していない編集は破棄されます。
今の編集ページからテーブルのリストのページへと移動します。
構成を保存する
今の編集ページを保存します。カラムの「タイプ」と「属性」の変更は内容により警告画面が表示されます。
警告画面が出た場合、内容を確認し、問題ないと判断されたのなら「構わず実行」を、テーブルに保存されているレコードを削除して実行したい場合は「削除して実行」を押してください。キャンセルしたい場合は「キャンセル」ボタンもしくは画面上の×ボタンを押してください。
「構わず実行」「削除して実行」を行う場合、一度csvファイルの保存を行い、バックアップをとることを推奨します。
保存して終了
今の編集ページを保存します。「構成を保存する」と同様に、カラムの「タイプ」と「属性」の変更は内容により警告画面が表示されます。
警告画面が出た場合、内容を確認し、問題ないと判断されたのなら「構わず実行」を、テーブルに保存されているレコードを削除して実行したい場合は「削除して実行」を押してください。キャンセルしたい場合は「キャンセル」ボタンもしくは画面上の×ボタンを押してください。
「構わず実行」「削除して実行」を行う場合、一度csvファイルの保存を行い。バックアップをとることを推奨します。
保存を終えるとテーブル一覧の画面に戻ります。
作成されるテーブルについて
ここで作成されるテーブルは以下のような性質を持ちます。
カラムに自動で"_id_"と"_timestamp_"が追加される
"_id_"と"_timestamp_"の2つカラムより、「テーブル」のインデックスと保存期限の機能を提供することが可能になります。
"_id_"はテーブル・データの編集で使用され、1レコードの変更が他のレコードに及ばないようにするため設けられたものです。
"_id_"は整数の連番で主キーに設定されています。
"_id_"の値を操作する場合はほかのカラムも主キーに設定することを推奨します。
"_timestamp_"はデータの制限で使用され、レコードに対しての更新、追加が実行された時刻を保存します。
"_timestamp_"は日時(timestamp with time zone)でデフォルト値に"now()"が設定されています。
また、「クエリ」テーブルのレコードを更新する場合には特に指定がなければ、"_timestamp_"も現在時刻に更新されるようになっています。
この2つカラムは「クエリ」で使用することができますが、「クエリ」で意図的に値を変更することは極力避けてください。「テーブル」で意図していないエラーが起きる可能性があります。
テーブル作成時には値にnullが入らない
カラムの追加時やレコードの編集、「クエリ」での更新、追加の際にはnullの代わりにデフォルト値が挿入されます。
これはHMIでnullを表示することができないことに起因します。
そのため、必ずどのカラムにもデフォルト値の設定が必要となります。
テーブルにnullが入らないわけではありません(カラムにNOT NULL制約が付いていない)。