いつもお世話になっております。

テーブルを作成したときに主キーのインデックスは改めて
貼る必要があるのでしょうか? それとも自動的に
インデックスを貼ってくれます?

このQ&Aに関連する最新のQ&A

A 回答 (4件)

主キーと分かっているのならテーブル作成時にPRIMARY KEY指定していますよね?


それならばインデックスは自動で作成されるはずです。
    • good
    • 2
この回答へのお礼

ありがとうございました。
主キーの設定はもちろんやっております。

お礼日時:2005/11/15 12:17

SQL Serverは主キーに設定した時点で


強制的にindexが作成されるはずでは?

create indexを主キーに対して実行すると
indexが重複して作成されてしまうはずです。
    • good
    • 0

パフォーマンスに問題なければデフォルトのままで問題ありません。

    • good
    • 0

単一の主キーは例えば


create table スキーマ名.*** (
主キー項目 varchar2(018) primary key,
???? char (005)
)
の様にprimarykey定義を作ればシステムが主キーで一意のキーに対して索引を自動で創成します。
複合主キーはalter tableで指定すれば大丈夫です。
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

関連するカテゴリからQ&Aを探す

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qインデックスラベルの印刷方法について

インデックスラベル 20シート(240片)23×29mmのインデックスにパソコンを使って印刷したいのですがどうしたらいいでしょうか。

Aベストアンサー

再びReffyです。検索かけましたが自分でも見つけられなかったのでLionさんに聞きました!そうしたらなんと、こちらの会社ではDLサービスをやっていなかったそうです。
あったほうがいいですかね?と逆に聞かれてびっくりでした。なので、ごめんなさい、DLするという方法は無理のようです。かくなる上はWordソフトなどを使い、まず台紙のサイズを設定し、ラベルの縁だと数字が小さすぎるので文字始めの位置、文字終わりの位置までを入れて余白設定し、そこに打ち込むしか方法がないと思われます。

もしくは#3の方もかかれたようにエーワンならDLと利用も簡単なものがあるので、そちらでチェックしたのちラベルの再購入をご検討になる方が早いかも知れません。

Qテーブルのどの項目が主キーか判断する方法

SQLで、
 desc table1
と入力するとテーブルの項目名、NOT NULLの有無、型を表示させることができますが、
同じような表示形式で主キーかどうかを確認することはできますか?

ご存知の人がいましたら教えてください。

Aベストアンサー

ここは「SQL Server」のカテゴリですが、SQL Serverについての質問ですか?
SQL Serverには、「desc 表名」といった機能は、ないのではないでしょうか?

表やインデクスの定義情報の管理方法は、RDBMS毎にかなり違いますし、情報を得る方法も違います。
RDBMSにより、ディクショナリ、カタログ、情報スキーマ等と呼ばれ、主要なRDBMSでは、SQLによる検索を可能にしています。また、いくつかのRDBMSでは、「DESC」(DESCRIBE)といった特別な命令を準備している場合もあります。

RDBMS名とバージョンを明記してください。

Qインデックスシールの印刷。(ラベル屋さん)

インデックスシールを印刷しようと、ラベル屋さんを使用しているのですが、印刷がうまくいきません。

■シール⇒23mm×29mm(中)/12片×15シート
■プリンタ⇒エプソンPM-A750

用紙設定をしようとすると、このシートの大きさに該当するものがなく
ユーザー設定にしても、数値を入力するところが見当たりません。
(ハガキサイズより、1シートの大きさが小さいので、定規で測ってみたら縦13cm、横8cmでした)
ヘルプを見ても、わかりませんでした。
印刷の微妙な数値を設定しても、もとの用紙設定が違うせいかうまくいきません。
何か方法はありますか?

Aベストアンサー

シートの短辺がプリンターの設定できる用紙幅よりも短いから印刷できません。

ユーザー設定の用紙サイズは、一覧の一番下にありますので、それを選ぶと数値を入れる窓が開きます。

諦めてもう一回り大きなシートを用意してください。

ダメ元で良ければ130x89mmに設定して、印刷位置を微調整ですねぇ。
端のシールには印刷できないですけどね(^^;

QSelect ~ into ~ で作成した一時テーブルにプライマリキー設定

SQLServer2005 を使用し、ストアドプロシージャを作成しています。

select ~ into ~ で一時テーブルを作成、データ挿入するのですが、
この命令で作成された一時テーブルにプライマリキーを作成したいと
考えております。
目的は、挿入される件数が多くなりそうなので、
検索を速くする為です。

プライマリキーを作成するのは、
ALTER TABLE ~ CONSTRAINT PK_xxx PRIMARY KEY CLUSTERED ( ~ )
で作成できる事は、理解しております。

これらの処理をストアドプロシージャで行いたいのですが、
注意点としては、当ストアドプロシージャが
並行して実行される事を考慮しておかなくてはなりません。


以下のようなサンプルを作成し、テストしてみたのですが、
セション1でストアドプロシージャ実行後、
セション2でストアドプロシージャを実行してみたのですが、
以下のエラーメッセージが表示されてしまいます。

ここで質問ですが、
制約名をどのようにすれば実現できるのでしょうか。
たとえば、制約名を省略すれば、システム内で一意な名称を
命名してくれるような書き方はないのでしょうか。

ご存じの方、ご回答宜しくお願いします。



-- サンプルストアドプロシージャ
create procedure proc_test as

select getdate() AS sysdate into #worktable

alter table #worktable with nocheck add
constraint pk_xxx primary key clustered ([sysdate])

waitfor time '23:59' -- テストの為待機

-- セション1ストアドプロシージャ実行
exec proc_test

-- セション2ストアドプロシージャ実行
exec proc_test

-- セション2の実行結果
(1 行処理されました)
メッセージ 2714、レベル 16、状態 4、プロシージャ proc_test、行 6
データベースに 'pk_xxx' という名前のオブジェクトが既に存在します。
メッセージ 1750、レベル 16、状態 0、プロシージャ proc_test、行 6
制約を作成できませんでした。以前のエラーを調べてください。

SQLServer2005 を使用し、ストアドプロシージャを作成しています。

select ~ into ~ で一時テーブルを作成、データ挿入するのですが、
この命令で作成された一時テーブルにプライマリキーを作成したいと
考えております。
目的は、挿入される件数が多くなりそうなので、
検索を速くする為です。

プライマリキーを作成するのは、
ALTER TABLE ~ CONSTRAINT PK_xxx PRIMARY KEY CLUSTERED ( ~ )
で作成できる事は、理解しております。

これらの処理をストアドプロシージャで行いたいのですが、
...続きを読む

Aベストアンサー

ALTER TABLE #worktable ADD PRIMARY KEY CLUSTERED ([sysdate])
でいけるとおもいますが。

QCD/DVDラベル印刷について

Mac OSX Leopardにアップグレードしたら、今まで使用してきたプリンターが非対応となってしまいましたので買い換えを検討しています。
(OSX付属のドライバで印刷は出来るのですが、スキャンが出来ないので)

オールインワンタイプで、かつ小型の機種が良いので、以下を検討しています。
http://www.brother.co.jp/product/mymio/info/dcp155c/index.htm

CDやDVDのラベル印刷もしたいので、プリンター標準でCD/DVDラベル印刷機能が
付いている機種でもいいのですが、大きさを考えると上記のブラザーの機種に
惹かれます。。。

そこでお聞きしたいのですが、

ラベルマイティ
http://www.justsystems.com/jp/label/
ラベル屋さん
http://www.labelyasan.com/

このようなラベル作成ソフトを使用する事で、上記のCD/DVDラベルを
作製する事が出来るのでしょうか?

ご存知の方いらっしゃいましたら教えて頂けますと助かります。
よろしくお願い致します。

Mac OSX Leopardにアップグレードしたら、今まで使用してきたプリンターが非対応となってしまいましたので買い換えを検討しています。
(OSX付属のドライバで印刷は出来るのですが、スキャンが出来ないので)

オールインワンタイプで、かつ小型の機種が良いので、以下を検討しています。
http://www.brother.co.jp/product/mymio/info/dcp155c/index.htm

CDやDVDのラベル印刷もしたいので、プリンター標準でCD/DVDラベル印刷機能が
付いている機種でもいいのですが、大きさを考えると上記のブラザーの機...続きを読む

Aベストアンサー

非対応と明記されているなら使えないですが、そうでないなら単にメーカー側で確認がとれていないだけで動く可能性はあります。
不具合あったり、動かない場合もあるけど。

Leopard対応と明記はされていませんが、ラベル作成ソフトはact2で扱っている「ディスクマイスター」とか他にもありますよ。
システム要項は「10.2.8、v.10.3.9、v.10.4以降」となっています。
http://www.act2.com/products/discmeister/

ダイレクトプリントではなく、ラベル紙へのプリントであれば、別にこういった専用のソフトを使わないでもワープロやペイント/ドローソフト等を使っても出来ます。
位置合わせが少し面倒なだけで。
実際、私はAppleWorksのドロー機能やIllustratorで作っています。


mymioの大きさ&価格は確かに魅力がありますが、
CDレーベルのダイレクト印刷できる機種選んだ方がいいかと思います。
ラベルは上手く貼らないと、ドライブ内で剥がれたり、高速回転時に重心がずれたりして、ドライブを傷める原因になります。
特にスロットインタイプのドライブでは。

非対応と明記されているなら使えないですが、そうでないなら単にメーカー側で確認がとれていないだけで動く可能性はあります。
不具合あったり、動かない場合もあるけど。

Leopard対応と明記はされていませんが、ラベル作成ソフトはact2で扱っている「ディスクマイスター」とか他にもありますよ。
システム要項は「10.2.8、v.10.3.9、v.10.4以降」となっています。
http://www.act2.com/products/discmeister/

ダイレクトプリントではなく、ラベル紙へのプリントであれば、別にこういった専用のソフトを...続きを読む

QSQLテーブルをインデックスしてSELECTを高速

テーブルのおインデックス項目はSELECTすると検索が早いのですが、
インデックスではない項目をWHEREすると時間がかかります。

そこでテーブルカラム全部をインデックス化することでの
メリット、デメリットは何でしょうか?

Aベストアンサー

メリット
検索が早くなる

デメリット
更新や挿入の処理に時間がかかる
ディスクやメモリをたくさん喰う
RAMが少なくてテーブル数やデータ量が多いとスワップアウトするので検索が遅くなる
RDBMSがインデックスの効率が悪いと判断したらインデックスを使用しないので資源の無駄遣いになる

Q見出し用のインデックスラベル

帳簿などにつける見出し用のインデックスラベルを
パソコンで印刷したいのですが、
インデックスラベルのフォームがあれば、教えて下さい。

ワード、エクセル、アクセス、ファイルメーカーで
使えるものが希望です。

Aベストアンサー

ちょっと調べてみたところ、
テンプレートバンク(http://www.templatebank.com/)
というサイトを見つけました。

参考URLにあげたところからニチバンかヒサゴを選ぶと
インデックスラベルがあります。

参考URL:http://www.templatebank.com/bank/ca_list1.asp?ca=31

Qデータベースのインデックスについて教えてください(複合インデックス)

インデックスについて教えてください。

データベースの項目にFirstNameとLastNameがあり、
AND検索のためにFirstNameとLastNameに複合インデックスを
設定しました。

でもFirstNameとLastNameのそれぞれ単独でも検索を
するような場合、FirstNameとLastNameの複合インデックスに
併せて、それぞれ単独のインデックスを作成する必要が
あるものでしょうか?

よろしくお願いいたします。

Aベストアンサー

検索と言っているのは、「=」条件やlikeの前方一致など、インデクスを有効利用できる検索ですか?
それとも、「C1 like '%xxx%'」といった検索もあるのですか?

母体データ件数は、1万件以上くらいはあるのでしょうか?

母体件数が数千件以下程度と少なければ、インデクスを付ける効果は少なくなります。

>FirstNameとLastNameに複合インデックスを設定しました

インデクスを構成する先頭列は、LastNameではないのですか?
普通、FirstNameでの検索より、LastName単独またはLastName+FirstNameでの検索が多いと思いますが?

インデクスを有効利用できる検索条件を指定することが前提ですが、(LastName+FirstName)でインデクスを付ければ、LastNameだけの条件でもインデクスを活用できます。
ある程度の母体データ量があり、インデクスを有効利用できるFirstNameだけでの検索もあるなら、FirstNameにもインデクスを付けた方がいいでしょう。

Q600枚の写真を安く、手間掛けずインデックス印刷

撮り溜めた600枚の写真をプリントしたいです。
良いサービスを探しているのですがなかなか見つかりません。
お知恵を貸してください。

やりたいこと:
1.A4紙に対し18コマ~35コマくらいの大きさで配置したい。
2.写真の縦横を編集可能あるいは、編集済みのものをそのまま配置したい
3.労力を掛けたくないので、アップロード等が軽快である
4.大きさはA4でなくてもよいが、ベストはA4
5.印刷クオリティは、そこそこはほしい

さがしてみたところ、最もイメージに近いのが富士フィルムの「ストーリーフォト」。
http://fujifilm.jp/personal/print/photo/storyphoto/specs.html
というか仕上がりはイメージどおりです。
しかし、何しろ価格が高いのです。一枚350円ですから、11900円にもなってしまいます。

価格が理想的なサービスとしては、「オートアルバム」でした。
600枚詰め込んでも3000円程度でできるようです。
ただし使ってみたところアップロードが絶望的で、10枚ずつがやっとでした。
https://autoalbum.jp/item/index.html

理想通りのサービスがありそうでなくて困っています。
特に2番の条件を満たしたものがありません。
できればネットで注文できればベストですが、
とりあえず手段は写真屋さん、自宅印刷も視野にいれております。

よろしくお願い致します。

撮り溜めた600枚の写真をプリントしたいです。
良いサービスを探しているのですがなかなか見つかりません。
お知恵を貸してください。

やりたいこと:
1.A4紙に対し18コマ~35コマくらいの大きさで配置したい。
2.写真の縦横を編集可能あるいは、編集済みのものをそのまま配置したい
3.労力を掛けたくないので、アップロード等が軽快である
4.大きさはA4でなくてもよいが、ベストはA4
5.印刷クオリティは、そこそこはほしい

さがしてみたところ、最もイメージに近いのが富士フィルムの「ス...続きを読む

Aベストアンサー

フリーソフト 「 ViX 」
http://www.vector.co.jp/soft/win95/art/se083112.html
エクスプローラ風統合画像ビュアー
「 ViX 」を起動してアルバムにしたいフォルダーを表示し、
メニューの「画像」をクリック、「アルバム保存」を選択し
どのように保存するか設定します。

画像出力サイズ 1600×1200
縮小画像配置数 7×5
縮小画像サイズ 200×150
添付画像は上下左右のマージン 0

一部の写真はわざとモザイクを付けました。

私の場合はWindows7でも動作します。
私の持っているHPのプリンターなら普通紙でもきれいに印刷できます。

QSQL 2005 主キーエラーに関して

大量データをSQL2005に投入した際、PK違反がありました。
どのカラムでその状態になっているかを調べる事は可能でしょうか?

主キー設定をしないで投入したら問題なくできました。

お手数ですが、教えてもらえればと思います。

Aベストアンサー

> 主キー設定をしないで投入したら問題なくできました。
重複を含むレコードがテーブル化できているのですから、
主キーをグループ化要素として、件数が1を越えるものを検索なさると良いでしょう。

クエリアナライザで実行できると思います。
SQL2005の書き方が不明なので、調整してください。(Oracleチックかも)

主キーの構成が不明ですが、仮に[伝票番号][枝番]の2項目で主キーなら

select [伝票番号], [枝番], count(*) from [重複含むテーブル]
group by [伝票番号], [枝番]
having count(*) > 1
;


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング

おすすめ情報