sql >> Databasteknik >  >> RDS >> Mysql

Kan en MySQL-utlösare simulera en CHECK-begränsning?

när du uppdaterar data :

delimiter $$
create trigger chk_stats1 before update on stats 
  for each row 
   begin  
    if  new.month>12 then
        SIGNAL SQLSTATE '45000'   
        SET MESSAGE_TEXT = 'Cannot add or update row: only';
      end if; 
      end; 
      $$

när du infogar data :

   delimiter $$
    create trigger chk_stats before insert on stats 
      for each row 
       begin  
      if  new.month>12 then
       SIGNAL SQLSTATE '45000'   
       SET MESSAGE_TEXT = 'Cannot add or update row: only';
       end if; 
    end; 
    $$

dessa utlösare kommer att fungera som kontrollbegränsning, arbeta innan infoga eller uppdatera och kontrollera månad, om månad>12 ger fel.



  1. Vilka är praktiska skillnader mellan `REPLACE` och `INSERT ... ON DUPLICATE KEY UPDATE` i MySQL?

  2. Hantera frysning i PostgreSQL

  3. Byt Oracle-port från port 8080

  4. Transparent Data Encryption (TDE) i SQL Server i en AlwaysOn Availability Group på exempel