Благодаря М. Биллу Карвину, код стал более чистым. В течение года я изменил его на «% Y». Код теперь:
CREATE TRIGGER `update_request_missions_after_insert` BEFORE INSERT ON `request_missions`
FOR EACH ROW
BEGIN
DECLARE next_id INT;
SELECT COALESCE(MAX(id),0) + 1 INTO next_id FROM request_missions;
IF next_id BETWEEN 1 AND 9 THEN
SET NEW.rm_number = CONCAT(DATE_FORMAT(CURDATE(),'%Y'), '-', '00000', next_id);
ELSEIF next_id BETWEEN 10 AND 99 THEN
SET NEW.rm_number = CONCAT(DATE_FORMAT(CURDATE(),'%Y'), '-', '0000', next_id);
ELSEIF next_id BETWEEN 100 AND 999 THEN
SET NEW.rm_number = CONCAT(DATE_FORMAT(CURDATE(),'%Y'), '-', '000', next_id);
ELSEIF next_id BETWEEN 1000 AND 9999 THEN
SET NEW.rm_number = CONCAT(DATE_FORMAT(CURDATE(),'%Y'), '-', '00', next_id);
ELSEIF next_id BETWEEN 10000 AND 99999 THEN
SET NEW.rm_number = CONCAT(DATE_FORMAT(CURDATE(),'%Y'), '-', '0', next_id);
ELSEIF next_id BETWEEN 100000 AND 999999 THEN
SET NEW.rm_number = CONCAT(DATE_FORMAT(CURDATE(),'%Y'), '-', next_id);
END IF;
END
Предупреждение: это страдает от состояния гонки. Например, если две таблицы вставляются в таблицу одновременно, они могут прочитать один и тот же next_id.
blockquote>Есть ли решение этой проблемы, зная, что целью этого триггера является добавление числа в формате «YYYY-ID» для каждой добавленной строки. ГГГГ: идентификатор текущего года: идентификатор форматированной строки, как показано в триггере
В настоящее время нет усилия портировать Дальвик на iPhone, потому что Google еще не выпустил источник. Как только источник выпущен (предположение, что все это будет), я думал бы, что это произойдет. Это также, вероятно, видно на других доморощенных платформах, таких как PSP, Pandora, openmoko, и т.д.
На данный момент нет никаких существующих проектов, имеющих целью портировать Дальвик (VM Android, который не является действительно Java VM, так как он не выполняет байт-код Java) к iPhone. Существует, однако, по крайней мере один "реальный" Java VM, доступный для iPhone. Можно найти его в Cydia по взломанным телефонам.
Проблема с этими проектами - то, что Apple не позволяет сторонним приложениям выполнять код, таким образом, Java VMs может только работать на взломанных iPhone.
Чтобы быть полезными, необходимо было бы также портировать соединение с App Store Google. Да, Apple, собирающаяся позволять это. Мы, намного более вероятно, будем видеть некоторые инструменты эмуляции iPhone для Android.
IPhone Apple является закрытой системой. Они управляют тем, что развертывается от ОС до приложений. Они сказали, что у них нет намерения поддерживать JVM. Это должно было бы быть приложением жулика за пределами того управления и поэтому не очень обращающееся к массам.