MySQL:IF表存在,截断并插入ELSE创建

Joh*_*n C 13 mysql

只使用MySQL(我基本上没有 PHP知识),我需要有一个表,它基本上是一个更大的表的子集.源表会不时更改,丢失一些条目,获取其他新条目,以及更改现有条目的值.我可以描述我想要发生的事情,但似乎无法弄清楚命令的语法以使其工作.我也知道我可以有两个单独的查询,只需运行我需要的任何一个,而且我已经解决了,但我想尽可能地将它们结合起来.这就是我想要的:

如果subset_table不存在,则将其创建为[select query],ELSE截断subset_table并插入[select query]

就像我说的,我知道还有其他方法可以做到这一点 - 如果存在/创建我可以删除,或者我可以只运行两个不同的sql文件.我只是想知道我是否可以按照上面的说明执行此操作.

思考?

Gor*_*off 19

你可以这样做:

create table if not exists <tablename> . . .;

truncate table <tablename>;

insert into <tablename>(cols)
    select blah blahblah . . .;
Run Code Online (Sandbox Code Playgroud)

你根本不需要任何if陈述.