sql >> Database >  >> RDS >> Mysql

Rails valideren uniciteit mislukt bij gelijktijdige invoer

Dit is zeer ongebruikelijk en je hebt waarschijnlijk heel veel pech dat dit het geval is, het is mogelijk.

Lees:https://github.com/rails/rails/blob/master/activerecord/lib/active_record/validations/uniqueness.rb#L165

Houd rekening met het volgende:Gebruiker A verzendt formulier

  • Gebruiker A verzendt formulier
  • Rails controleert database op bestaande ID voor gebruiker A - geen gevonden
  • Gebruiker B verzendt formulier
  • Rails controleert database op bestaande ID voor gebruiker B - geen gevonden
  • Rails Slaat gebruiker A record op
  • Rails slaat record van gebruiker B op

Dit alles moet binnen milliseconden gebeuren, maar het is technisch mogelijk.

Ik stel voor een beperking toe te voegen op databaseniveau (primaire sleutel).



  1. Hoe beperkingen voor externe sleutels in SQL Server-database voor alle tabellen te verwijderen - SQL Server / TSQL-zelfstudie, deel 72

  2. Converteer timestamp datatype naar unix timestamp Oracle

  3. Probleem met tekencodering met PHP Simple HTML DOM Parser

  4. MariaDB JSON_OBJECTAGG() uitgelegd