Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

MySQL ट्रिगर अगर स्थिति मौजूद है

मुझे लगता है कि आप इसे वापस OLD में अपडेट करना चाहते हैं पासवर्ड, जब नया प्रदान नहीं किया जाता है।

DROP TRIGGER IF EXISTS upd_user;

DELIMITER $$

    CREATE TRIGGER upd_user BEFORE UPDATE ON `user`
    FOR EACH ROW BEGIN
      IF (NEW.password IS NULL OR NEW.password = '') THEN
            SET NEW.password = OLD.password;
      ELSE
            SET NEW.password = Password(NEW.Password);
      END IF;
    END$$

DELIMITER ;

हालांकि, इसका मतलब है कि उपयोगकर्ता कभी भी पासवर्ड खाली नहीं कर सकता है।

यदि पासवर्ड फ़ील्ड (पहले से एन्क्रिप्टेड) ​​को mySQL के अपडेट में वापस भेजा जा रहा है, तो यह शून्य या रिक्त नहीं होगा, और MySQL उस पर पासवर्ड () फ़ंक्शन को फिर से करने का प्रयास करेगा। इसका पता लगाने के लिए, इसके बजाय इस कोड का उपयोग करें
DELIMITER $$

    CREATE TRIGGER upd_user BEFORE UPDATE ON `user`
    FOR EACH ROW BEGIN
      IF (NEW.password IS NULL OR NEW.password = '' OR NEW.password = OLD.password) THEN
            SET NEW.password = OLD.password;
      ELSE
            SET NEW.password = Password(NEW.Password);
      END IF;
    END$$

DELIMITER ;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. मैं कैसे जांचूं कि कोई कॉलम खाली है या MySQL में शून्य है?

  2. कई कॉलम में MySQL COUNT ()

  3. क्या MySQL में TimeStamp जैसे peewee में DateTimeField के लिए एक ऑटो अपडेट विकल्प है?

  4. MySQL में पिछले 10 मिनट से रिकॉर्ड कैसे प्राप्त करें

  5. मूडल का उपयोग करके उपयोगकर्ता बनाएं और उन्हें SQL के माध्यम से पाठ्यक्रमों में नामांकित करें