Mysql
 sql >> база данни >  >> RDS >> Mysql

Увеличете полето за ID на таблица с побитово броене

За да заобиколя всички горепосочени проблеми, успях да създам следното, което работи чудесно!

DELIMITER $$
CREATE TRIGGER testbitcompatid BEFORE INSERT ON Table
    FOR EACH ROW 
    BEGIN
        SET @LAST_ROW = (SELECT MAX(id) FROM Table);
        SET NEW.id = CASE WHEN @LAST_ROW IS NULL THEN 1 ELSE @LAST_ROW * 2 END;

    END;
$$
DELIMITER ;

До голяма степен вземаме най-високия id , вземете log(2) от него, което ни дава съответния AUTO_INCREMENT id . След това добавяме 1 , и го захранвайте до 2 .

Надявам се това да помогне за предотвратяване на някои главоболия в бъдеще за други.




  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. MySQL:ALTER IGNORE TABLE дава нарушение на ограничението за целостта

  3. Синтактична грешка на SQL, номер, дата/час

  4. MOD_REWRITE ПОМОЩ!

  5. Как да избера по набор от начални знаци?