MySQL - 插入前触发,只插入col =另一个现有数据库名称?

时间:2015-05-27 19:42:12

标签: mysql database triggers dml

我有一个数据库(database1)和一个表imei_db(IMEI VARCHAR(15), db VARCHAR(40))。我还有其他数据库(例如:database2),我想要一个触发器,在database1imei_db上插入一行时,如果有一个数据库,它会在实际插入之前验证名称等于db字段值。

例如:

现有数据库:database1, database2

成功:INSERT INTO imei_db VALUES ("111222333444555","database2")

失败:INSERT INTO imei_db VALUES ("111222333444555","database3")

1 个答案:

答案 0 :(得分: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;