オートナンバー属性に設定するには?

解決


はづき  2003-04-02 11:51:56  No: 77518

連投稿申し訳ありません
先の方法でフィールドの追加ができました
ご教授ありがとうございました

オートナンバー型に設定ができません
長整数などならDBLONG等でできるようですが
オートナンバーに設定することができません

フィールド作成時もしくは作成後にオートナンバーに設定する方法
お願いします・・・


魔界の仮面弁士  2003-04-02 19:10:28  No: 77519

夜遅くまでご苦労様です。

ADOやDAOのオブジェクトモデルを使っても追加できるのですが、
今回はSQL文で指定する方法を回答しますね。
(オブジェクトで追加する方法が知りたい場合は、再質問してください)

--------------
[既存表へのオートナンバー列の追加]

これには、以下のようなSQLを使います。
  『ALTER TABLE テーブル1 ADD 新しい列 COUNTER』

"COUNTER" (または、"AUTOINCREMENT")というのが、
"オートナンバー型"を表すキーワードです。

また、Jer 4.0では、以下の構文も利用できます。
  『ALTER TABLE テーブル1 ADD 新しい列 COUNTER(10,5)』

これは、「初期値=10、増分値=5」なオートナンバーを生成します。
それぞれの値に、負数やゼロ値を指定する事も可能です。

--------------
[新規表にオートナンバー列を作成]

先と同様、"COUNTER" もしくは "AUTOINCREMENT" で指定します。
例えば、以下のようなSQL文が利用できます。

CREATE TABLE 従業員 (
   社員番号 AUTOINCREMENT CONSTRAINT PK_社員番号 PRIMARY KEY,
   社員姓 TEXT(50) WITH COMP NOT NULL,
   社員名 TEXT(50) WITH COMPRESSION NOT NULL,
   電話番号 TEXT(10),
   Email TEXT(50),
   住所 TEXT(40) DEFAULT 不明)

これは、以下のような[従業員]というテーブルを作成するための物です。
  社員番号: オートナンバー(初期値=1、増分値=1)
  社員姓  : テキスト型(50文字、Unicode圧縮あり) [値要求あり]
  社員名  : 文字列型(50文字、Unicode圧縮あり) [値要求あり]
  電話番号: 文字列型(10文字、Unicode圧縮なし) [値要求なし]
  Email   : 文字列型(50文字、Unicode圧縮なし) [値要求なし]
  住所    : 文字列型(50文字、Unicode圧縮なし) [値要求なし、初期値=不明]

また、CONSTRAINT指定により、このテーブルには[社員番号]列に対して
"PK_社員番号" という名前の主キーが設けられています。

# なお上記には Jet 4.0の ANSI-92モードでしか利用できないキーワードが
# いくつか含まれていますので(WITH COMPやDEFAULT等)、このままですと、
# 「ADO + "Microsoft.Jet.OLEDB.4.0"」以外から実行する事はできません。
# DAOから実行したい場合には、WITH COMP等のキーワードを削って、
# ANSI-89モードのSQL構文にしてから試してみてください。


はづき  2003-04-03 06:19:15  No: 77520

詳しく返答ありがとうございます
DAOからできること、SQLでできること
まだまだ未熟さを痛感いたします・・・

完全夜型の体に育ってしまった私の集中力は
昼と夜では比べ物にならないため遅い時間にしばしばやってます(^^;

まぁお仕事している以上そればかりでは身が持ちませんが
できるときにやるのみですね


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加