sql >> Databáze >  >> RDS >> Mysql

Sloupec INT podobný SERIAL

S Informix DBMS se sloupec SERIAL po vložení nezmění; skutečně nemůžete aktualizovat hodnotu SERIAL vůbec. Můžete vložit nový s hodnotou buď 0 – v takovém případě se vygeneruje nová hodnota – nebo můžete vložit jinou hodnotu. Pokud jiná hodnota již existuje a existuje jedinečné omezení, selže; pokud neexistuje nebo pokud v sériovém sloupci neexistuje žádné jedinečné omezení, uspěje. Pokud je vložená hodnota větší než největší dříve vložená hodnota, bude další vložené číslo opět o jedno větší. Pokud je vložené číslo menší nebo záporné, nemá to žádný vliv na další číslo.

Aktualizaci tedy můžete provést bez změny hodnoty – žádný problém. Pokud potřebujete změnit číslo, budete muset provést mazání a vkládání (nebo vkládání a mazání), kde vložka má v sobě nulu. Pokud dáváte přednost konzistenci a používáte transakce, můžete vždy smazat a poté (znovu) vložit řádek se stejným číslem nebo s nulou, aby se spustilo nové číslo. To předpokládá, že máte programovací jazyk, na kterém běží SQL; Nemyslím si, že můžete ISQL a Perform vyladit tak, aby to dělaly automaticky.

Takže v tuto chvíli nevidím problém na Informixu.

S příslušnou verzí IDS (cokoli, co je podporováno) můžete použít SEQUENCE také k ovládání vložených hodnot. Toto je založeno na syntaxi a konceptu Oracle; DB2 to také podporuje. Jiné DBMS mají jiné ekvivalentní (ale odlišné) mechanismy pro manipulaci s automaticky generovanými čísly.



  1. Nebyl nalezen žádný vhodný ovladač pro jdbc:postgresql://192.168.1.8:5432/NexentaSearch

  2. php odstranit řádky odkazů z databáze mysql

  3. Přidejte sekundy do časového razítka

  4. Chyba 1130 v mysql