![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
No.2ベストアンサー
- 回答日時:
m_idは「番号」と言うことですから数値型ですよね?
一意であれば良いのでしたら削除による抜けは気にしなくて良いのでは?
LONG型で1づつ加算される数値だとしたら1日10万通以上送っても100年はもちます。
やり方としてよく見かけるのは、番号付与用のテーブルを別に作って現在の最大番号を入れておき、そのテーブルから次に使える最大番号得る方法です。
注意点としては番号付与用のテーブルの排他制御を必ず行なうこと。
複数人が同時アクセスする可能性のあるWebアプリですので、複数人がたまたま同じタイミングで更新してしまった時に排他制御をしていないと同じ番号が得られてしまい一意でなくなってしまいます。
番号付与用のテーブルを作らずにSELECT文のMAX関数でm_idの最大値をとってくるやり方もありますが、タイミングにより一意でなくなる可能性がありますのでおすすめしません。
もしもm_idが文字型であれば、もっと簡単です。
m_id=メールアドレス+年月日時分秒+適当な乱数
としておけば一致することはまずありません。
この回答への補足
LONG型で1づつ加算される数値というのはPHPでnextId()を使うということでしょうか?
それともlong型のm_idをAUTO_INCREMENTにするということでしょうか?
No.3
- 回答日時:
私の場合、PostgreSQLだとsereal型ですが、MySQLですと、ほとんどの場合ユニークキーになる物は
int(11) NOT NULL auto_increment
としてテーブルを作成しています。自動的に作成されるのでまったく気にしなくていいわけです。
既にテーブルが有り、移行が困難と言う事でしたら、もしDB接続にPEARをつかって居ればPEAR DB システムの nextId() メソッドを使うのが楽です。
参考まで。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Oracle sqlで質問です。 Aテーブルの情報をBテーブルに更新かけたいです。 やりたいことは、Bテーブルの受 1 2023/05/17 11:17
- Yahoo!メール Yahooアカウントにログインできなくなって困っています。 2 2023/05/16 02:28
- その他(メールソフト・メールサービス) Windows10付属のメール、なぜ設定が劇的に簡単になったのか? 1 2022/12/16 13:14
- PHP コメント機能に返信欄を矢印で追加したい 1 2022/05/09 21:17
- その他(IT・Webサービス) [PayPay銀行キャッシュカード拾得の件] このメールは本物か? 6 2022/09/15 21:52
- OCN光 「メールが届きませんでした」という大量のメール 4 2023/02/08 20:21
- 迷惑メール・スパム 詐欺メールや迷惑メールの類だと思うのですが、 ある日私の迷惑メールフィルターをすり抜けメールが届き、 6 2023/01/29 15:01
- Yahoo!ショッピング Yahooショッピングの際にYahoo IDにログイン《承認メール送信の行程があるのですが番号変更し 1 2022/05/20 09:39
- Yahoo!メール Yahooメールにログインできません 2 2022/12/12 07:46
- Yahoo!メール Yahooアカウントにログインできないです。 1 2023/05/26 09:01
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
『列名 '担当者CD' があいま...
-
SQLを発行とは?クエリの作成と...
-
VBとアクセスでSQL文に変...
-
DataGridの中身をDataSetにテー...
-
AccessからExcelへエクスポート...
-
ACCESS2010 実行時エラー 2766
-
Sinテーブルの値からAtan等の値...
-
オラクルデータベースへの更新方法
-
COBOLのコーディングについて
-
【ADO】「Execute」を使うと...
-
ウェブアプリケーションでのテ...
-
C# OleDbDataAdapter.Fillメソ...
-
Access2007でアプリケーション...
-
Cシェルで、全テーブル名をコ...
-
vb6のコンボボックスの操作につ...
-
手動または分散トランザクショ...
-
シートの全データを2次元のテ...
-
更新時の「同時実行エラー」の対策
-
リストボックスに複数列表示し...
-
(泣)VBscriptでinnerhtmlを使...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBとアクセスでSQL文に変...
-
WORD VBA プログラム修正をお願...
-
Accessで別mdbのテーブルをコピー
-
『列名 '担当者CD' があいま...
-
DataGridViewに複数テーブルの...
-
他のMDBのテーブルに追加したい
-
エクセルのテーブルを解除する...
-
Excel複数シートをaccessへ一括...
-
手動または分散トランザクショ...
-
SQLを発行とは?クエリの作成と...
-
AccessからExcelへエクスポート...
-
CSVファイルのエクスポートでソ...
-
ACCESS2010 実行時エラー 2766
-
HTMLのテーブルの行数が多くな...
-
ExcelVBAからAccessMDB内のテー...
-
【ADO】「Execute」を使うと...
-
★クリスタルレポートの元になる...
-
DataGridの中身をDataSetにテー...
-
ACCESSのテーブル名をリストに...
-
COBOLのINVALID KEYが理解でき...
おすすめ情報