sql >> Databasteknik >  >> RDS >> Mysql

Vill du begränsa värdet på ett MySQL-fält till ett specifikt intervall (decimalvärden)

Du kan simulera en kontrollbegränsning i MySQL med hjälp av triggers.

Om du till exempel vill tvinga alla värden större än 1,00 att lagras som 1,00, kan du göra det med två utlösare så här:

DELIMITER $$

DROP TRIGGER IF EXISTS tr_b_ins_relationships $$

CREATE TRIGGER tr_b_ins_relationships BEFORE INSERT ON relationships FOR EACH ROW BEGIN
  IF new.relationship_level > 1
  THEN
    SET new.relationship_level = 1;
  END IF;
END $$

DELIMITER ;


DELIMITER $$

DROP TRIGGER IF EXISTS tr_b_upd_relationships $$

CREATE TRIGGER tr_b_upd_relationships BEFORE UPDATE ON relationships FOR EACH ROW BEGIN
  IF new.relationship_level > 1
  THEN
    SET new.relationship_level = 1;
  END IF;
END $$

DELIMITER ;


  1. Lagra en fil i en databas i motsats till filsystemet?

  2. Allvarligt fel:Anrop till odefinierad funktion sqlsrv_connect() i C:\xampp\htdocs

  3. mysql - returnera första kolumnen en gång och alla motsvarande kolumndata

  4. SQL-utvecklare 4.1.2