sql >> データベース >  >> RDS >> Mysql

MySQL-値の自動デクリメント


    自動インクリメントされた一意の識別子を使用しないでください 序数として。
    単語"unique" 識別子は永久にその行に固定する必要があることを意味します 。

    これらの番号と列挙の間に関係はありません。
    アルファベット順にレコードを選択するとします。あなたの貴重な数字はどこに行きますか?データベースは、おそらくあなたが思うように、順序付けられたリストのようなものではありません。これは、行が事前定義された順序で格納されているフラットファイルではありません。それは全く異なるイデオロギーを持っています。データベース内の行には順序がありません。また、ORDER BYによって明示的に設定されている場合は、選択した時間にのみ注文されます 条項。
    また、データベースがあなたを検索することになっています。したがって、フィルタリングされた行または異なる順序では、この自動インクリメント番号は実際の行の位置とはまったく関係がないことがわかります。

    出力を列挙したい場合、それはプレゼンテーション層の仕事です。 PHP側にカウンターを追加するだけです。

    そして再び:これらの番号は特定のレコードを識別することになっています。この番号を変更すると、レコードが二度と見つかりません。

    このサイトを例にとってみましょう。 Stack Overflowは、その質問を次のような番号で識別します。

    したがって、このページアドレスをブックマークに保存したと想像してください。ここで、Jeffがやって来て、データベース全体の番号を付け直します。ブックマークを押して、別の質問にたどり着きます。サイト全体がひどい混乱になるでしょう。

    覚えておいてください:一意の識別子の番号を付け直すのは悪いことです!



    1. SQL Serverで信頼できないすべてのCHECK制約を返す方法(T-SQLの例)

    2. MySQLでのビューの更新

    3. MySQLの保護-安全なインストールのためのデータアクセス権限の利用

    4. SentryOneデータをAzureSQLデータベースDTU計算機に送信する