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

MySQL पंक्ति सम्मिलित करें, डुप्लिकेट पर:प्रत्यय जोड़ें और पुनः डालें

आप एक ट्रिगर बना सकते हैं जो डालने से पहले NEW.slug का मान बदल देता है।

drop trigger if exists changeSlug;

delimiter |

CREATE TRIGGER changeSlug BEFORE INSERT ON slugs
  FOR EACH ROW BEGIN
     declare original_slug varchar(255);
     declare slug_counter int;
     set original_slug = new.slug;
     set slug_counter = 1;
     while exists (select true from slugs where slug = new.slug) do
        set new.slug = concat(original_slug, '-', slug_counter); 
        set slug_counter = slug_counter + 1;
     end while;

  END;
|
delimiter ;

और ये परिणाम होंगे

mysql> insert into slugs values ("dude");
Query OK, 1 row affected (0.00 sec)

mysql> insert into slugs values ("dude");
Query OK, 1 row affected (0.00 sec)

mysql> insert into slugs values ("dude");
Query OK, 1 row affected (0.00 sec)

mysql> select * from slugs;
+--------+
| slug   |
+--------+
| dude   |
| dude-1 |
| dude-2 |
+--------+
3 rows in set (0.00 sec)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PHP में उम्र का पता लगाने के लिए वर्तमान तिथि और समय से कुछ तारीख और समय घटाएं

  2. अगले और पिछले तत्व के लिए प्रश्नों का अनुकूलन

  3. MySQL कैसे मूल्य समाप्त करने के लिए?

  4. php डेटाटाइम को mysql डेटाबेस में स्टोर करें

  5. दो ऑटोइनक्रिकमेंट कॉलम या ऑटोइनक्रिकमेंट और दूसरे कॉलम में समान मान