Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Zakres liczb całkowitych SQL podczas tworzenia tabel

Uwaga autora :dwie pierwsze części tej odpowiedzi są nieprawidłowe. Myślałem, że MySQL obsługuje CHECK ograniczenia i tak się nie stało. Nadal nie. Aby ograniczyć kolumny do prostej listy wartości, użyj ENUM podejście na końcu tej odpowiedzi. Jeśli logika jest bardziej skomplikowana (zakres wartości, wartość oparta na innej kolumnie itp.), jedyną opcją MySQL jest wyzwalacz.

Potrzebujesz CHECK ograniczenie, jeśli jest to INT :

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

Lub:

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

Lub jeśli możesz żyć z ciągiem SiteID, to:

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



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. bind_param() konieczne tylko w przypadku wartości wprowadzonych przez użytkownika czy wszystkich?

  2. Wykonaj skrypt SQL do tworzenia tabel i wierszy

  3. Jaki jest odpowiednik MySQL funkcji CHOOSE() w SQL Server?

  4. USTAWIĆ NAZWY utf8 w MySQL?

  5. Czy kolejność warunków w klauzuli WHERE wpływa na wydajność MySQL?