Примечание: @@ имя хоста имя хоста MySQL.
Вы можете недействить запрос выбора, например, так как оптимизатор MySQL видит это как невозможное WHERE
.
SELECT
'field_1'
, 'field_2'
FROM
DUAL
WHERE 0;
MySQL имеет INSERT INTO ... SELECT
запрос таким образом, когда вы используете:
INSERT INTO
table_name (
field_1
, field_2
)
SELECT
'field_1'
, 'field_2'
FROM
DUAL
WHERE 0
Инструкция INSERT INFO не будет выполняться.
При использовании:
INSERT INTO
table_name (
field_1
, field_2
)
SELECT
'field_1'
, 'field_2'
FROM
DUAL
WHERE 1;
INSERT INTO
будет выполнена. Смотрите демо http://sqlfiddle.com/#!9/5623f/1
С @@ проверки имени хоста:
INSERT INTO
table_name (
field_1
, field_2
)
SELECT
'field_1'
, 'field_2'
FROM
DUAL
WHERE IF(
@@hostname = 'ip-10-0-0-15'
, 1
, 0
);
Смотрите демо http://sqlfiddle.com/#!9/d9081/4.
В качестве побочного элемента вы также можете использовать его для «поддержки» CHECK (MySQL не поддерживает CHECK с инструкцией CREATE TABLE) на столбцах, для которых вам нужны триггеры.
См. Демо http://sqlfiddle.com/#!9/9dfa2/1.
Это сработало отлично! Спасибо! – TerranRich