ВЫХОДНОЙ пункт в MySQL - PullRequest
       3

ВЫХОДНОЙ пункт в MySQL

22 голосов
/ 28 апреля 2011

Есть ли способ имитировать предложение OUTPUT в MySQL, поскольку у нас есть предложение OUTPUT в SQL Server.

Вот тип запроса, который у меня есть

UPDATE       employee
SET          empage = 10
OUTPUT       INSERTED.empid
WHERE        (empage < 10)

Поскольку мне нужна эта функция и для базы данных сервера MySQL.

Пожалуйста, предложите лучший способ для достижения этой цели.функциональность.

1 Ответ

13 голосов
/ 28 апреля 2011
  1. Вы можете создать триггер и вставить нужные значения в другую таблицу.
  2. Я не уверен, но - для таблиц MYISAM вы можете заблокировать employee таблицу, выбрать и вставить значения вдругую таблицу, а затем обновить и разблокировать employee таблицу.

РЕДАКТИРОВАТЬ:

Я пробовал один сценарий с таблицей InnoDb, кажется, работает -

START TRANSACTION;

SELECT * FROM table WHERE id = 1 FOR UPDATE; -- lock rows
-- Or call this select to insert and lock rows
-- INSERT INTO table_output SELECT * FROM table WHERE id = 1 FOR UPDATE;

-- Make modifications
UPDATE table SET column1 = '111' WHERE id = 1;

COMMIT;

Оператор SELECT (предложение FOR UPDATE)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...