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

複数のテーブルの一意のID[MySQL]

    必要なのは、外部で生成されたシーケンスであり、それを2つのテーブルにリンクします

    flickrが作成したものを確認する必要があります。次のリンクを確認してください: http://code.flickr.com/blog/2010/02/08/ticket-servers-distributed-unique-primary-keys-on-the-cheap/

    IDを生成するテーブルを作成します:

    CREATE TABLE `Tickets64` (
      `id` bigint(20) unsigned NOT NULL auto_increment,
      `stub` char(1) NOT NULL default '',
      PRIMARY KEY  (`id`),
      UNIQUE KEY `stub` (`stub`)
    ) ENGINE=MyISAM
    

    次のように作成した新しいIDを取得するには:

    REPLACE INTO Tickets64 (stub) VALUES ('a');
    SELECT LAST_INSERT_ID();
    

    Twitterも最近スノーフレークという名前の何かを作成しました。githubリポジトリを確認する必要があります

    しかし、主にflickrが作ったもの、そのシンプルで簡単に処理できるものを見てください



    1. Oracle PL / SQL:スタック・トレース、パッケージ名、およびプロシージャ名を取得する方法

    2. Oracleで2つのデータベースオブジェクトを比較する方法は?

    3. 時間と深夜以降の処理

    4. rand()によるmysqlの順序パフォーマンスの問題と解決策