Solaris ネーミングの管理

エントリを修正する

既存のエントリを修正 (編集) する場合は、-e オプションまたは -E オプションを指定します。Solaris 8 リリースでは、旧リリースとの互換性を維持するため、-m オプションも残されています。新しいアプリケーションまたはコマンド行での操作には、-e オプションまたは -E オプションを使うことをお勧めします。

テーブル内の既存のエントリ (行) を編集するには、nistbladm コマンドに -e オプションまたは -E オプションを指定し、それに続けて、値を変更した column=value のペア (1 つまたは複数) とテーブル内の特定の行を示すインデックス名を指定します (「nistbladm とインデックス名」を参照)。


nistbladm [-e | -E] column=" value" ¥
 column=" value" ¥
 ... indexedname

-e オプションまたは -E オプションを指定して既存エントリ (行) を修正する場合は、次の点に注意してください。

-e オプションを指定してエントリを編集する

-e オプションを指定した場合、複数のエントリの検索可能列値を変更することになる nistbladm コマンドは実行されず、エラーが返されます。このとき、検索不可列の値は考慮されません。


nistbladm column=" value" ¥
 column="  value" ¥
 ... indexedname

-e オプションを指定した場合、変更する列の値を指定するだけです。

ここで次のテーブルについて考えます。

Dept 

Site 

Name 

Sales 

SanFran 

Tsosulu 

Name 列の値を Chandar に変更するには、次のように入力します。


master% nistbladm -e Name="Chandar" [Dept='Sales',Site='SanFran'], ¥
	depts.doc.com. 

修正後のテーブルは次のようになります。

Dept 

Site 

Name 

Sales 

SanFran 

Chandar 

(上記の例では、インデックス名に Name 列が含まれていません。これは、Name 列が検索可能ではないためです。)

C シェルを使っている場合は、角カッコを含む数式を引用符でオフセットすることもできます。

-e オプションを指定して検索可能列の値を編集するには、新たに指定した値が (インデックス名によって識別される) 1 行にだけ適用されることが条件になります。したがって、Dept 列の値を Manf に変更するには、次のように入力します。


master% nistbladm -e Dept="Manf" [Dept='Sales',Site='SanFran'], ¥
	depts.doc.com. 

Dept (検索可能) 

Site (検索可能) 

Name 

Manf 

SanFran 

Chandar 

しかし、検索可能列に ManfSanFran という値を持つエントリが既に存在する場合は、nistbladm -e はエラーを返します。

同一のエントリが対象である場合は、複数の列の変更を指定できます。たとえば、Dept 列と Name 列の値を変更するには、次のように入力します。


master% nistbladm -e Dept="Manf" Name="Thi" ¥
	[Dept='Sales',Site='SanFran'],depts.doc.com.

Dept (検索可能) 

Site (検索可能) 

Name 

Manf 

SanFran 

Thi 

-E オプションを指定してエントリを編集する

-E オプションは、nistbladm コマンドで既存のエントリを上書きする場合のアプリケーションに使用します。

ここで次のテーブルを想定します。

Dept (検索可能) 

Site (検索可能) 

Name 

Sales 

SanFran 

Chandar 

Sales 

Alameda 

Achmed 

このテーブルに対して次のコマンドを実行します。


master% nistbladm -E Site="Alameda" Mgr="Chu"  ¥
[Div='Sales',Site='SanFran'],depts.doc.com.

すると、Sales SanFran Chandar 行が Sales Alameda Chu に変わります。しかも、キーの値 Sales Alameda によって識別される Sales Alameda Achmed 行までもが変更の対象になります。その結果、コマンド実行前には 2 つあったはずの行が 1 つになります。

Dept (検索可能) 

Site (検索可能) 

Name 

Sales 

Alameda 

Chu 

これは複数の行を編集することになるので、オプションが -e であれば、上記のコマンドはエラーを返します。しかし、実際には -E が指定されているので、複数のエントリ (行) が編集されます。