我试图在一些旧公司的MySQL 5.5代码中包含一些逻辑检查:
例如,
CREATE TABLE IF NOT EXISTS <table_a> (
blah blah blah
);
我正在尝试添加逻辑,以便只在另一个表存在时执行查询:
If <table_b> EXISTS
THEN
CREATE TABLE IF NOT EXISTS <table_a> (
blah blah blah
);
END IF;
这是我的查询遵循MySQL 5.5语法(https://dev.mysql.com/doc/refman/5.5/en/if.html)
IF EXISTS(SELECT table_name
FROM INFORMATION_SCHEMA.TABLES
WHERE table_schema = 'table_b_database'
AND table_name = 'table_b')
THEN
CREATE TABLE IF NOT EXISTS <table_a> (
blah blah blah
);
END IF;
可悲的是,有一条错误消息:
SQL Error (1064): You have an error in your SQL syntax;
任何大师都可以启发吗?感谢。
答案 0 :(得分:0)
IF search_condition THEN statement_list [ELSEIF search_condition THEN statement_list] ... [ELSE statement_list] END IF
你应该可以做类似
的事情IF EXISTS(SELECT table_name
FROM INFORMATION_SCHEMA.TABLES
WHERE table_schema = 'table_b_database'
AND table_name = 'table_b')
THEN CREATE TABLE IF NOT EXISTS <table_a> (
blah blah blah
);
END IF
我希望这有助于