Mysql
 sql >> Base de données >  >> RDS >> Mysql

Déclencheur MySQL :copier la valeur auto_increment dans une autre colonne lors de l'insertion

Sur ce code

  CREATE TRIGGER insert_example
  BEFORE INSERT ON notes
  FOR EACH ROW 
  SET NEW.content = (
        SELECT AUTO_INCREMENT 
        FROM information_schema.TABLES 
        WHERE TABLE_SCHEMA = DATABASE() 
        AND TABLE_NAME = 'notes'
  );

j'ai fait quelque chose comme ça

SET NEW.content = (SELECT CONCAT('ID',LPAD(AUTO_INCREMENT, number,'0')) 
FROM information_schema.TABLES 
WHERE TABLE_SCHEMA = DATABASE() 
AND TABLE_NAME = 'notes');

au cas où vous utiliseriez UNSIGNED_ZEROFILL sur le champ id... et vous pourriez avoir besoin d'un type personnalisé d'id "public"...