
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ランキング
-
任意の周波数の正弦波(サイン...
-
変更のあったテーブルを見つける
-
テーブルのアイテム番号を一意...
-
MySql PHP 2つのテーブルをJOI...
-
『列名 '担当者CD' があいま...
-
AccessからExcelへエクスポート...
-
ACCESS2010 実行時エラー 2766
-
Accessのフォームでリス...
-
Access クエリで変数を参照する...
-
フォーム部品「file」内容をク...
-
ファイル名の一部削除について
-
VBA 変数名に変数を使用したい。
-
vbaで出来ますか?
-
VB6でデータベースを変えるとテ...
-
C++ 文字列変数と16進数の比較
-
Err.Number
-
[SQLServer]既に存在するテーブ...
-
DataTableのselectメソッド
-
Access :ALTER TABLE で作成...
-
CString型 全角半角を意識せず...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
『列名 '担当者CD' があいま...
-
VBとアクセスでSQL文に変...
-
SQLを発行とは?クエリの作成と...
-
ExcelVBAからAccessMDB内のテー...
-
[C#] DataGridViewでコンボボッ...
-
エクセルのテーブルを解除する...
-
ACCESS2010 実行時エラー 2766
-
CSVファイルのエクスポートでソ...
-
他のMDBのテーブルに追加したい
-
AccessからExcelへエクスポート...
-
Accessで別mdbのテーブルをコピー
-
手動または分散トランザクショ...
-
★クリスタルレポートの元になる...
-
COBOLのINVALID KEYが理解でき...
-
Accessで宛名ラベルに同一宛先...
-
DataGridViewに複数テーブルの...
-
.net 複数の主キーを設定する方法
-
Excel複数シートをaccessへ一括...
-
アクセステーブル、リンクとロ...
-
VB.NETでのAccessテーブルリンク
おすすめ情報