メインコンテンツまでスキップ

テーブルの編集

テーブルの編集は、基本的に Excel に近い操作感で行えます。
名前の表示は、テーブルがヘッダーと行に名前、論理名、その両方のどれを描画するかを決めます。
編集モードは Enter、またはセルのダブルクリックで開始します。
Enter または Escape で終了します。入力した内容は入力と同時に反映されるため、Escape でもテキストは元に戻らず、そのまま残ります。ドメインのセルは例外で、一覧から選ぶだけで、入力した内容は残りません。論理名を変更して論理名のセルを閉じると、物理名も設定されることがあります。
Escape の後もセルはフォーカスされたまま、テーブルは選択されたままで、もう一度 Escape を押すと両方とも解除されます。論理名のセルが用語の候補一覧を表示している間は、最初の Escape で一覧だけが閉じます。
IME の変換中は、Escape を押しても編集モードは終了しません。

Alt + N でテーブルを追加し、2 つのカラムを入力

カラムの追加​

ショートカット Alt + Enter (Windows/Linux) または ⌥ + Enter (Mac) で作成すると、選択しているすべてのテーブルにカラムが追加されます。テーブルのヘッダーの + ボタンで作成すると、そのテーブルに追加されます。
新しいカラムの最初のセルにフォーカスが移ります。これは、カラム順で行が最初に描画するセルです。既定の順序では名前のセルで、Logical Names では論理名、Both Names では Logical Name のセルです。名前の表示を参照してください。
最後のセルで Tab を押して追加したカラムと、リレーションシップの描画が主キーのない親テーブルに追加する主キーも、そのセルから始まります。

Tab キー​

Tab を押すと、次のセルの編集モードにそのまま移動します。
最後のセルで Tab を押すと、新しいカラムを作成し、その最初のセルを編集できる状態で開きます。カラムの追加を参照してください。
Shift + Tab で前のセルの編集モードに移動します。
Tab と Shift + Tab はテーブルが描画するセルを順に通るため、論理名とドメインのセルがその中に含まれるかどうかは、名前の表示と View Option → Domain で決まります。論理名の入力を参照してください。
行の最後のセルの後ろに描画される代替キーのマークはセルではないため、キーボードのフォーカスはマークを飛ばし、編集モードになることもありません。

Tab でセルを移動し、最後のセルでカラムを追加して Shift + Tab で戻る

DataType の自動補完​

DataType のセルの編集を開始して入力すると、選択しているデータベースの型のうち、入力に一致するものが候補として表示され、入力した文字列をそのまま含む部分がハイライトされます。
一致はあいまい検索のため、vch でも VARCHAR が見つかります。

  • Arrow Up または Arrow Down: 候補を移動します。
  • Arrow Right、Tab または Enter: ハイライトされている候補を確定します。
  • Arrow Left: 入力した文字列に戻ります。

候補はクリックでも選択できます。
一覧には一度に最大 10 件の候補が表示され、残りはスクロールで表示できます。
入力は強制されないため、一覧にない型も自由に入力でき、VARCHAR(255) のような引数も指定できます。VARCHAR(255) や BIGINT UNSIGNED のように、入力が型名全体を超えると一覧は閉じます。
候補は選択しているデータベースに従います。データベースを変更すると提示される候補が変わり、既存のカラムはそのまま残ります。

ドメインに紐付いたカラムの DataType のセルに入力するか、そこで候補を確定すると、型がドメインの型と異なった時点でカラムの紐付けが解除されます。ドメインとデータ型を参照してください。
Logical Names で View Option → Domain がオフの間は、名前の付いたドメインに紐付いたカラムの型のセルにドメインの名前が表示され、編集するとこれらの候補ではなくドメインのピッカーが開きます。データ型を表示している型のセルは、上記のとおりデータ型を編集します。

矢印キー、Tab、Enter であいまい検索の候補から DataType を入力

Not Null, Unique, Auto Increment​

この 3 つのセルはテキストではなくトグルです。
ダブルクリック、またはフォーカスした状態で Enter を押すと切り替わります。

Not Null のセルは、設定されているときは N-N、設定されていないときは NULL と表示されます。
UQ と AI は、オフのときは薄く表示され、オンのときはハイライトされます。

Not Null はダブルクリック、Unique と Auto Increment は Enter で切り替え

テーブルの表示オプションで非表示になっているセルは切り替えられません。

カラムの複数選択​

次の 5 つの方法に対応しています。

  • Shift + Arrow Up/Down: 1 行ずつ選択範囲を広げます。
  • Ctrl + click (Windows/Linux) または ⌘ + click (Mac): カラムを 1 つ追加します。
  • Shift + click: 最後にフォーカスしたカラムからの範囲を選択します。
  • Ctrl + Shift + click (Windows/Linux) または ⌘ + Shift + click (Mac): その範囲を選択に追加します。
  • Alt + A (Windows/Linux) または ⌥ + A (Mac): すべて選択

Shift + Arrow Down、Ctrl/⌘ + click、Shift + click、Alt + A でカラムを選択

選択したカラムをまとめて移動するには、フォーカスしているカラムの横のハンドルをドラッグします。カラムの並べ替えと移動を参照してください。

テーブルのコンテキストメニューの対象になるカラムは、どの修飾キーを押していても、カラムの行を右クリックした時点で決まります。
すでに選択している行では、選択はそのままで、フォーカスがその行に移動します。それ以外の行では、その行だけが選択されます。これは、キーのアイコンや代替キーのマークを含め、行のどこを右クリックしても同じです。
そのため、カラムの主キーやカラムの削除のようにメニューから複数のカラムを操作するには、選択している行のいずれかを右クリックします。
Mac では Ctrl + click でもメニューが開きますが、通常のクリックとして扱われるため、セル上ではメニューが開く前にその行だけが選択されます。

カラムの並べ替えと移動​

カラムはドラッグハンドルで移動します。ドラッグハンドルは、フォーカスしている行の横、テーブルの左端のすぐ外にある、グリップの付いた小さなボタンです。
クリック、矢印キー、Tab のいずれかでカラムのいずれかのセルにフォーカスすると、その行の横にハンドルが表示されます。フォーカスがテーブルのヘッダーにある間は、どの行にもハンドルはありません。
ハンドルはポインタが乗るまで淡く描画され、乗るとポインタが手の形に変わります。押しただけでは何も起きません。ポインタを動かすとドラッグが始まり、カラムをテーブル内の別の位置や別のテーブルへ移動できます。
テーブルの行の上では、ドラッグした行がその位置に入り、ドロップ位置の周りの行はずれて場所を空けます。空いているキャンバスの上や、カラムのあるテーブルのヘッダーの上では、行の半透明のコピーがポインタに追従し、各行の名前と型のセルを、現在の名前の表示でその行が描画するとおりに表示します。
テーブルの最後の行のすぐ下にドロップすると、カラムはそのテーブルの末尾に移動します。カラムのないテーブルでは、テーブル上のどこにドロップしても受け付けます。ハンドルがあるテーブルのすぐ左の帯もテーブルの行として扱われるため、ハンドルに沿ってまっすぐ下へドラッグすれば、ポインタをテーブルに入れずにカラムを並べ替えられます。
別のテーブルへ移動したカラムは、論理名とドメインを保ちます。

カラムにフォーカスして行の横のハンドルを新しい位置へドラッグし、続いて別のカラムのハンドルを別のテーブルへドラッグする様子

複数のカラムを一度に移動するには、カラムを選択して、フォーカスしているカラムの横のハンドルをドラッグします。フォーカスしているカラムが、そのテーブルで選択している 2 つ以上のカラムの 1 つである間は、ハンドルはそのすべてを運びます。それ以外の場合は、そのカラムだけを運びます。
修飾キーは必要ありません。ハンドルで Alt (Windows/Linux) または ⌥ (Mac) を押しながらドラッグしても、通常のドラッグと同じようにカラムを移動し、何も複製しません。

3 つのカラムを選択し、フォーカスしているカラムの横のハンドルを別のテーブルへドラッグすると、選択したほかのカラムも一緒に移動する様子

ハンドルではなくカラムの行から始めたドラッグは、ヘッダーをドラッグしたときと同じようにテーブルを移動します。複数テーブルの移動を参照してください。行で Alt + drag (Windows/Linux) または ⌥ + drag (Mac) を行うと、テーブルを複製します。テーブルとメモの複製を参照してください。
テーブルが名前だけの表示になる 70% 以下の拡大・縮小のレベルや、読み取り専用のエディタではハンドルが描画されないため、そこではカラムを並べ替えられません。
エディタが読み取り専用になったときに進行中だったカラムのドラッグはその場で終了します。ポインターに付いてくるコピーとつかんだ手はなくなり、離してもカラムは移動しません。ドラッグがすでに移動させた行は、移動した位置に残ります。

カラムの削除​

フォーカスしているテーブルの、選択しているカラムを削除します。セルをクリックするとそのカラムが選択されるため、セルをクリックして Delete を押すと、そのカラム 1 つが削除されます。
ショートカット:

  • Delete または Backspace。そのカラムのテーブルだけを選択している間は、選択しているカラムを削除します。カラムを選択していない場合(フォーカスがテーブルの名前、論理名、コメントのいずれかにある場合)、ほかのものも一緒に選択している場合、またはテーブルが名前だけの表示になる 70% 以下の拡大・縮小のレベルでは、代わりに選択全体を削除します。テーブルとメモの削除を参照してください。
  • Alt + Backspace または Alt + Delete (Windows/Linux)、⌥ + Backspace または ⌥ + Delete (Mac)。ほかのテーブルやメモも一緒に選択している間でも、フォーカスしているテーブルの選択しているカラムを削除します。セルの編集中や 70% 以下では、何も削除しません。

Alt + Backspace でカラムを 1 つ、続けて選択した 2 つのカラムを削除

テーブルのコンテキストメニューでも同じ操作ができます。そのテーブルだけを選択した状態でカラムの行を右クリックすると、メニューの最後の項目が Delete column と表示されます。その行が、選択している 2 つ以上のカラムの 1 つである場合は Delete columns と表示されます。

セルの編集中は、Delete と Backspace はテキストを消すだけです。セルの編集中でなければ、押し続けても削除は 1 回だけです。
削除後、フォーカスは、フォーカスしていたカラムより上に残っている最も近いカラムに移動します。上にカラムが残っていない場合は、下にカラムが残っていてもフォーカスがテーブル名(Logical Names では、その代わりに描画される論理名)に移動するため、次の Delete または Backspace はカラムではなくテーブルを削除します。
削除したカラムを使っているリレーションシップとインデックスも一緒に削除されます。確認はなく、削除全体が Undo の 1 ステップになります。

カラムのコピー / 貼り付け​

表形式のクリップボードとして動作します。
ショートカット: Ctrl + C (Windows/Linux) または ⌘ + C (Mac)、Ctrl + V (Windows/Linux) または ⌘ + V (Mac)

スプレッドシートへのコピー、スプレッドシートからの貼り付け、カラムのセルにフォーカスしているテーブルへの貼り付けには、テーブルに表示されているセルが表示されている順序で使われます。テーブルの表示オプション、カラム順の調整、名前の表示を参照してください。名前の表示によって、それらのセルの一部が持つ内容が次のように変わります。

  • Logical Names では、名前のセルは論理名を持ち、論理名が空の間は何も持ちません。View Option → Domain がオフの間は、型のセルは、カラムのドメインを表示している場合はその名前を、それ以外の場合はデータ型を持ちます。
  • Both Names では、Logical Name のセルが、カラム順で置かれる位置でコピー・貼り付けされます。
  • 表示されているドメインのセルはドメインの名前を持ち、ドメインを表示しないカラムでは何も持ちません。

エディタでコピーしたカラムを、テーブルのヘッダーを選択した状態で貼り付けるか、選択しているほかのテーブルに貼り付けると、Unique や Auto Increment のような非表示のセルも含めたコピーしたカラムのすべてのセルと、その論理名が引き継がれます。
ドメインの紐付けが保たれるのは、このダイアグラムに同じ名前のドメインではなく同じドメインそのものがあり、そのドメインがまだコピーしたカラムの型を持っている間だけです。それ以外の場合は、コピーしたときの型のまま、紐付けのない状態で貼り付けられます。名前は自分で付けたものとして扱われます。ただし、貼り付けた名前が空で、論理名から名前が生成される場合は除きます。物理名の生成を参照してください。
AK1.1 のような代替キーのマークはセルではないため、表示されている場合でもコピーと貼り付けには含まれません。

エディタから Excel へ、Excel からエディタへ貼り付けられます。
セルの値は入力したとおりに出力されるため、<label> や a &amp; b のような値も、そのままスプレッドシートやドキュメントに届きます。
スプレッドシートの列は、名前ではなく位置で表示されているセルに対応するため、シートの列はそのセルの順序に従う必要があります。
次のカラムでは、以下の値を true として扱います(大文字小文字は区別しません)。

  • AutoIncrement: TRUE, 1, YES, Y
  • Unique: TRUE, 1, YES, Y
  • Not Null: TRUE, 1, YES, Y, NOT NULL

書き出すときは、AutoIncrement と Unique は TRUE または FALSE、Not Null は NOT NULL または NULL として出力します。
Unique と Auto Increment は既定で非表示のため、これらのセルを表示したときにだけ TRUE と FALSE を出力し、読み取ります。

4 つのカラムをスプレッドシートに貼り付け、フラグは TRUE/FALSE と NOT NULL/NULL で出力

スプレッドシートの 3 行をカラムとしてテーブルに貼り付け、YES、1、NOT NULL は true として扱う

貼り付け先は、フォーカスの位置によって変わります。

  • テーブルのヘッダーを選択している場合は、貼り付けた行が、選択しているすべてのテーブルに新しいカラムとして追加されます。
  • カラムのセルにフォーカスしている場合、そのテーブルでは、選択している行と、最後に選択した行より下の行が、貼り付けた行の数だけ順に上書きされます。離れた選択の間にある行は飛ばされます。上書きされた行は表示されているセルに貼り付けた値を受け取り、非表示のセルはそのまま残ります。余った行は新しいカラムとして追加されます。選択しているほかのテーブルには、貼り付けた行が新しいカラムとして追加されます。

2 つのカラムをコピーし、選択した 2 つのテーブルにまとめて貼り付け

貼り付けた行は、論理名とドメインを次のように書き込みます。

  • Logical Name のセル、または Logical Names での名前のセルから貼り付けた論理名は、全体を入力したものとして扱われます。カラムの名前が空か、まだ生成されたものである間は、辞書がその論理名から物理名を生成し、その用語が与えるドメインを紐付けます。ただし、その行自身のドメインのセルがドメインを紐付ける場合は除きます。同じ行で貼り付けた名前はそのまま残り、自分で付けたものとして扱われます。
  • ドメインのセル、または View Option → Domain がオフの Logical Names での型のセルは、そのテキストを名前に持つドメインがダイアグラムにあれば、そのドメインを紐付けます。それ以外のテキストや空のセルは何も紐付けず、貼り付けた型のドメインであっても、カラムの紐付けを解除します。型のセルのテキストがどのドメインの名前でもない場合は、データ型として読み取られます。エディタでコピーした行は、代わりにコピーしたときのドメインを紐付けます。ただし新しいカラムと同じく、このダイアグラムにそのドメインがコピーした型で存在する間だけです。
  • 紐付けたドメインは、行が独自の型を貼り付けない限り、カラムにそのデータ型を設定します。行が型を貼り付ける場合、別の型のドメインは紐付けられず、カラムは貼り付けた型になります。
  • ドメインのセルがない行では、入力したときと同じように、貼り付けた型は別の型のドメインからカラムの紐付けを解除します。
  • どの貼り付けも、リレーションシップのデータ型同期で型を伝えることはありません。

テーブルとメモのコピー / 貼り付け​

フォーカスしているテーブル内でカラムを選択していない場合は、同じショートカットで選択中のテーブルとメモ自体をコピーします。テーブル関連機能を参照してください。

カラムの主キー​

フォーカスしているカラムの主キーを切り替えます。対象はフォーカスしているセルが属するカラムです。
フォーカスしているカラムが、選択している 2 つ以上のカラムの 1 つである場合は、選択しているすべてのカラムが切り替わります。そのうち 1 つでも主キーでないものがあればすべてが主キーになり、すべてがすでに主キーであればすべて解除されます。選択の外にあるカラムは変わりません。
テーブルのコンテキストメニュー、またはショートカット Alt + K (Windows/Linux) または ⌥ + K (Mac) で操作します。切り替えの対象が 2 つ以上のカラムになる場合、メニューの項目は Primary Key ではなく Primary Key on selected columns と表示されます。
行に表示されるキーのアイコンは表示専用のため、クリックしても主キーは設定されません。

複数のカラムを 1 つの複合キーにするには、カラムを選択してから Alt + K (Windows/Linux) または ⌥ + K (Mac) を押すか、選択している行のいずれかを右クリックして Primary Key on selected columns を選びます。切り替えは 1 回ごとに Undo の 1 ステップです。

Shift + Arrow Down で 2 つのカラムを選択し、⌥ + K で両方を主キーにして、もう一度押して両方とも解除

読み取り専用のエディタ​

readonly のエディタでは、どのセルも編集できる状態で開かず、どのカラムも変わりません。
セルをクリックしてもフォーカスは移らず、移動が残した選択は解除されます。Enter とダブルクリックはエディタを開かず、トグルも切り替えません。Tab はページに任され、カラムの追加、すべて選択、削除のショートカット、主キーの切り替え、貼り付けは何もしません。
エクスプローラーやクイック検索からカラムへ移動すると、そのセルにフォーカスが移ります。その後は矢印キーでセルからセルへフォーカスが移り、到達したカラムだけが選択されます。そこでは Shift でカラムを追加できないためです。
Ctrl + C (Windows/Linux) または ⌘ + C (Mac) は、引き続き選択したカラム、または移動が選択したテーブルをコピーします。カラムのコピー / 貼り付けを参照してください。