Вставить строку со значением столбца, равным значению автоматического увеличения - PullRequest
0 голосов
/ 27 сентября 2018

Я заполняю таблицу, которая содержит поле идентификатора (автоинкремент) и некоторые другие поля.Одним из требований является копирование значения автоинкремента в другое поле в той же таблице.

Вот как я это делаю:

INSERT INTO testtable (testtable.NAME, testtable.lastID) VALUES ('xxx',(SELECT AUTO_INCREMENT
FROM information_schema.tables
WHERE TABLE_NAME = 'testtable'
AND table_schema = DATABASE( )))

Мне интересно, этот потокбезопасный?Будет ли это работать правильно, когда есть несколько соединений, и все они выполняют оператор вставки?

1 Ответ

0 голосов
/ 27 сентября 2018

Вы можете настроить триггер после вставки, чтобы копировать одно поле в другое, это лучший способ.

--
-- Triggers `testtable`
--
DROP TRIGGER IF EXISTS `update_field`;
DELIMITER //
CREATE TRIGGER `update_field` AFTER INSERT ON `testtable`
 FOR EACH ROW INSERT INTO testtable 
    update testtable
           set lastID = new.id 
            WHERE testtable.id = new.id
//
DELIMITER ;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...