你在正确的模式?我问你的drop table命令是否正确,如果你在正确的模式(use whateverdb;
),它会工作。
如果对它们进行汇总,则您的所有命令都看起来不错。
如果您当前架构存在表A:
drop table if exists tablea;
是罚款
创建一个表,你需要指定的字段如。
create table tablea (column1 varchar(20), column2 int, etc etc);
或者更好的是,如果表是相同的结构,你可以忽略一部分,并与像语句创建表创建表:
drop table if exists tablea;
create table tablea like tableb;
insert into tablea select * from tableb where column1 = whatever;
如果TableA中不需要相同属性表B,你甚至可以这样做:
drop table if exists tablea;
create table tableb as select * from tableb where column1 = whatever;
这种方法比它上面的stament的唯一缺点是,它不会通过自定义键和特殊性能进行(如果有NY)。
最后,如果你将要一遍又一遍重现TableA的,那么,你最初创建表A(create table tablea like tableb;
)后,你可以只保留低于重新运行这两条线:
truncate tablea;
insert into tablea select * from tableb where whatever;
会最好是截断(清空内容)比放下要快得多,并让您的键/属性保持完整。
来源
2016-06-07 22:49:07
RJJ
截断不起作用在一个单一的事件。看来,任何终止行动“;”导致事件陈述的其余部分被删除 – cdeniro
Truncate完美地适用于我需要的东西。问题在于我错过了BEGIN和END。感谢指针! – cdeniro