MySQL 从内存中删除 table 加入 InnoDB table
MySQL delete from Memory table join InnoDB table
我的查询是:
DELETE FROM abc_memory INNER JOIN abc USING (abc_id) WHERE x < y
和MySQL抱怨说:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'INNER JOIN abc USING (abc_id) WHERE x < y' at line 1
在 MySQL 中有一个限制,即既不将内存 table 与 innodb table 连接在一起,也不在连接两个普通 table 时进行删除。但是在与 InnoDB table 连接时从内存 table 中删除是否有限制?
当你在 DELETE
中使用 JOIN
时,你必须在 DELETE
子句中列出 table 名称,以告诉它哪个 table (s) 从中删除。
DELETE abc_memory
FROM abc_memory
JOIN abc USING (abc_id)
WHERE x < y
这只会从 abc_memory
table 中删除。如果要从两个 table 中删除,请将其更改为 DELETE abc_memory, abc
。
这在manual中有解释:
Multiple-table syntax
DELETE [LOW_PRIORITY] [QUICK] [IGNORE]
tbl_name[.*] [, tbl_name[.*]] ...
FROM table_references
[WHERE where_condition]
or:
DELETE [LOW_PRIORITY] [QUICK] [IGNORE]
FROM tbl_name[.*] [, tbl_name[.*]] ...
USING table_references
[WHERE where_condition]
您必须在 DELETE
之后或 USING
子句中列出 table(这与 USING
选项不同 JOIN
子句).
我的查询是:
DELETE FROM abc_memory INNER JOIN abc USING (abc_id) WHERE x < y
和MySQL抱怨说:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'INNER JOIN abc USING (abc_id) WHERE x < y' at line 1
在 MySQL 中有一个限制,即既不将内存 table 与 innodb table 连接在一起,也不在连接两个普通 table 时进行删除。但是在与 InnoDB table 连接时从内存 table 中删除是否有限制?
当你在 DELETE
中使用 JOIN
时,你必须在 DELETE
子句中列出 table 名称,以告诉它哪个 table (s) 从中删除。
DELETE abc_memory
FROM abc_memory
JOIN abc USING (abc_id)
WHERE x < y
这只会从 abc_memory
table 中删除。如果要从两个 table 中删除,请将其更改为 DELETE abc_memory, abc
。
这在manual中有解释:
Multiple-table syntax
DELETE [LOW_PRIORITY] [QUICK] [IGNORE] tbl_name[.*] [, tbl_name[.*]] ... FROM table_references [WHERE where_condition]
or:
DELETE [LOW_PRIORITY] [QUICK] [IGNORE] FROM tbl_name[.*] [, tbl_name[.*]] ... USING table_references [WHERE where_condition]
您必须在 DELETE
之后或 USING
子句中列出 table(这与 USING
选项不同 JOIN
子句).