2015-05-27 4 views
0

У меня есть база данных (database1) и таблица imei_db(IMEI VARCHAR(15), db VARCHAR(40)). У меня также есть другие базы данных (например: database2), и мне нужен триггер, который вставляет строку на database1. imei_db, он проверяет перед фактической вставкой, если есть база данных с именем, равным db значение поля.MySQL - Триггер перед вставкой, только вставьте, если col = другое существующее имя базы данных?

Например:

Существующие базы данных: database1, database2

преуспевает: INSERT INTO imei_db VALUES ("111222333444555","database2")

терпит неудачу: INSERT INTO imei_db VALUES ("111222333444555","database3")

+0

Что такое 'database3'? –

+0

Возможная база данных, которая на самом деле не существует и просто использовалась в качестве примера сбоя. На этом примере можно было бы сказать, что «для устройства« 111222333444555 »я должен использовать« базу данных3 »для хранения своих данных». – MagisterMundus

+0

@ PM77-1, есть ли у вас какие-либо идеи о том, как это сделать? – MagisterMundus

ответ

0

Это, как мне удалось это сделать:

USE database1; 
INSERT INTO `imei_db`(`IMEI`,`db`) 
SELECT 111222333444555,"database2" FROM anytable 
WHERE (SELECT count(*) 
FROM information_schema.TABLES 
WHERE (TABLE_SCHEMA = 'database2') AND (TABLE_NAME = 'table_expected_to_exist')) = 1 
LIMIT 1;