Mysql语法混淆:无法删除多个表

时间:2016-10-12 09:19:53

标签: mysql

我的mysql命令很简单:

DELETE [LOW_PRIORITY] [QUICK] [IGNORE]
    FROM tbl_name[.*] [, tbl_name[.*]] ...
    USING table_references
    [WHERE where_condition]

我只想同时删除这两个表。但是当我执行它时,客户端告诉我有一个sytax错误。

如果我使用chnage从表到单一,删除两次,两者都可以成功。

但是,我查看官方文档:http://dev.mysql.com/doc/refman/5.7/en/delete.html语法如下:

USING table_references

private class LongOperation extends AsyncTask<String, Void, String> { @Override protected String doInBackground(String... params) { //Call the address() method return ""; } @Override protected void onPostExecute(String result) { //Stop showing your progress bar } @Override protected void onPreExecute() { //Start showing your progress bar } } 是什么意思?我必须一起加入他们吗?

4 个答案:

答案 0 :(得分:0)

如果你想&#34;删除&#34;表使用DROP命令。如果要清除表中的所有行,请使用TRUNCATE命令。

答案 1 :(得分:0)

您可以通过将它们放入事务中从2个表中删除。 我不确定在一个查询中是否可以删除2个表。当从任何表中删除时,您可以在from子句中包含1个或多个表。

delete table1
from table1, table2 -- that what tbl_references mean above
where table1.c1=table2.c1

你需要什么: 使用可以与两个表连接的键创建一个驱动程序表,以防从第一个表中删除将难以从第二个表中删除..

being transaction
delete table1
from table1 t, drv d
where t.key = d.key

delete table2
from table2 t, drv d
where t.key = d.key
commit -- if successful
rollback -- if unsuccessful..

答案 2 :(得分:0)

你必须通过半冒号将它分开,就像这样: DELETE FROM ts_template_size;删除ts_thumbnail;

答案 3 :(得分:0)

Mysql - delete from multiple tables with one query

可能重复

您实际上可以在这两个表(多个表)上执行DROP表,如下所示:

drop table table1, table2, table3;

或者将删除放在交易中:

start transaction
begin
    delete from table1;
    delete from table2;
    delete from table3;
commit;

或者您可以创建包含动态SQL代码的UDF,您可以将表列表作为数组提供,并在UDF中执行删除。

call delete_tables(list_of_tables);