sql >> Database teknologi >  >> RDS >> Mysql

Definition af sammensat nøgle med automatisk stigning i MySQL

Du kan ikke få MySQL til at gøre dette for dig automatisk for InnoDB-tabeller - du skal bruge en trigger eller procedure eller bruge en anden DB-motor såsom MyISAM. Automatisk inkrementering kan kun udføres for en enkelt primær nøgle.

Noget som det følgende burde virke

DELIMITER $$

CREATE TRIGGER xxx BEFORE INSERT ON issue_log
FOR EACH ROW BEGIN
    SET NEW.sr_no = (
       SELECT IFNULL(MAX(sr_no), 0) + 1
       FROM issue_log
       WHERE app_id  = NEW.app_id
         AND test_id = NEW.test_id
    );
END $$

DELIMITER ;


  1. WHERE klausul før INNER JOIN

  2. Hvordan konverterer jeg fra BLOB til TEXT i MySQL?

  3. NLS_CHARSET_NAME() Funktion i Oracle

  4. Opretter forbindelse til Oracle Database via C#?