2016-04-04 8 views
0

mysqlのテーブルに予約IDを追加します。私はそれをR001、R0002などとして追加する必要があります。 数字部分は自動インクリメントする必要があります。 データを選択するときではなく、データを挿入するときにこれを実行します。 これを行う方法はありますか? スタックフローに関する多くの投稿に言及しましたが、機能しませんでした。連結自動増分プライマリキーの挿入方法

+5

インクリメント整数キーを使用するだけです。マネージャーの方がはるかに簡単で、外部キー参照の方が簡単です。 –

+0

R ## nまたはR ### nですか?あなたの質問は明確ではありません。この詰め物をちょうど1、2、3などと比較すると、何のメリットがありますか?表示は1つですが、格納するためには単純な整数にすることをお勧めします。結合と索引付けをはるかに容易に/より効率的にします。あなたがそれを格納している場合、数字が足りなくなったらどうなりますか? R001はR0001に更新する必要がありますか?整数 - KISSを遵守するhttps://en.wikipedia.org/wiki/KISS_principle – Kritner

答えて

1

あなたが説明している機能のネイティブな組み込みサポート(MySQL版)はありません。

これを行う方法はありますか?

はい、これが実現できます。しかし、それは自明ではない。 1つの方法は、BEFORE INSERTトリガを使用し、Oracle SEQUENCEオブジェクトをエミュレートすることです。そして、私がやってみた試みのほとんどは欠陥があり、実際には動作しません。しかし、それは可能です。

しかし、そのような機能をMySQLで実装するのは実用的ではないため、それを実証することは大部分学術的です。

AUTO_INCREMENTが必要な場合は、単純な整数を使用してください。そしてあなたのSQLを単純な整数列で動作させてください。

その列の値を取得すると、表示するためにフォーマットすることができますが、必要に応じて変更することができます。しかし、その機能をデータベースにではなくUIに近づけてください。

私の2セントです。

関連する問題