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

MySQL тригер преди вмъкване на колона за актуализиране с нов идентификатор за автоматично увеличение

AUTO_INCREMENT колона се задават само след вмъкване.

Ако имате нужда от достъп тази стойност можете само в AFTER INSERT задействане. Не можете обаче да променявате стойност на колона в AFTER UPDATE задействане...

Освен това не можете да извършите актуализация на таблицата, използвана във вашия AFTER INSERT задейства като (http://dev.mysql. com/doc/refman/5.0/en/stored-program-restrictions.html ):

Тук единственото разумно решение би било да се създаде съхранена процедура за актуализиране на таблицата, като се коригират съответните колони в транзакция, за да "емулират" вашия оператор за атомно вмъкване.

Като се има предвид това, в конкретния ви случай , key колоната е излишна, тъй като тази колона е просто конкатенация на две други колони от същия ред.

Като се има предвид името му, не търсите ли начин вместо това да създадете съставен ключ? Нещо такова:

ALTER TABLE tbl ADD UNIQUE KEY (countryCode, id);



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. JDBC връща грешен брой засегнати редове

  2. Как да съхранявате дата и час в MySQL с информация за часовата зона

  3. MySQL / PHP - Намерете налични времеви слотове

  4. Проблеми при сравнение на MySQL с плаваща запетая

  5. SQL DELETE с JOIN друга таблица за условие WHERE