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

Rozsah SQL Integer při vytváření tabulek

Poznámka autora :první dvě části této odpovědi jsou nesprávné. Myslel jsem, že MySQL podporuje CHECK omezení a nestalo se tak. Stále ne. Chcete-li omezit sloupce na jednoduchý seznam hodnot, použijte ENUM přístup na konci této odpovědi. Pokud je logika složitější (rozsah hodnot, hodnota založená na jiném sloupci atd.), jedinou možností MySQL je spouštěč.

Potřebujete CHECK omezení, pokud se jedná o INT :

CREATE TABLE Site (
  SiteID INT,
  CONSTRAINT SiteID_Ck CHECK (SiteID IN (1, 2, 3, 4)),
  ... and the rest

Nebo:

CREATE TABLE Site (
  SiteID INT,
  CONSTRAINT SiteID_Ck CHECK (SiteID BETWEEN 1 AND 4),
  ... and the rest

Nebo pokud můžete žít s řetězcem SiteID, pak:

CREATE TABLE Site (
  SiteID ENUM('1', '2', '3', '4'),
  ... and the rest



  1. Chyba vytvoření spouštěče:neplatná syntaxe

  2. Jaké řazení MySQL je nejlepší pro přijímání všech znaků Unicode?

  3. Oprava:„Neznámá tabulka ‚místní nastavení‘ v information_schema“ v MariaDB

  4. Ubuntu - 12.04 - MySql se nespustí pomocí služby mysql start