sql >> Databasteknik >  >> RDS >> Mysql

unikt ID i mer än en tabell [MySQL]

Vad du behöver är en extern genererad sekvens och länka den till dina 2 tabeller

Du bör titta på vad flickr gjorde, titta på denna länk:http://code.flickr.com/blog/2010/02/08/ticket-servers-distributed-unique-primary-keys-on-the-cheap/

Du skapar tabellen som genererar ID:t :

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

och för att få det nya id:t gör du så här :

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

Twitter har också nyligen gjort något som heter snowflake, du bör titta i deras github-repository

Men titta främst på vad flickr gjorde, det är enklare och kan hanteras enkelt



  1. MySQL - autoincrement till guid

  2. Hur man numrerar rader i SQL

  3. SQL Server:Hämta tabell primärnyckel med SQL-fråga

  4. Installera RAC för en databas med datafiler