MySQL - 插入前触发,仅当 col = 另一个现有数据库名称时才插入?
MySQL - Trigger before insert, only insert if col = another existing database name?
我有一个数据库 (database1
) 和一个 table imei_db(IMEI VARCHAR(15), db VARCHAR(40))
。我还有其他数据库(例如:database2
),我想要一个触发器,当在 database1
.imei_db
上插入一行时,它会在实际插入之前验证是否有数据库等于 db
字段值的名称。
例如:
现有数据库:database1, database2
成功:INSERT INTO imei_db VALUES ("111222333444555","database2")
失败:INSERT INTO imei_db VALUES ("111222333444555","database3")
我是这样做到的:
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;
我有一个数据库 (database1
) 和一个 table imei_db(IMEI VARCHAR(15), db VARCHAR(40))
。我还有其他数据库(例如:database2
),我想要一个触发器,当在 database1
.imei_db
上插入一行时,它会在实际插入之前验证是否有数据库等于 db
字段值的名称。
例如:
现有数据库:database1, database2
成功:INSERT INTO imei_db VALUES ("111222333444555","database2")
失败:INSERT INTO imei_db VALUES ("111222333444555","database3")
我是这样做到的:
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;