我在论文答辩中被问到“如何创建一个表结构而不复制数据库表中的数据?”我很确定我的回答。我的答案是:
CREATE TABLE new_table AS (SELECT *FROM old_table);
我的答案正确吗?
CREATE TABLE new_table AS (SELECT * FROM old_table where 0=1);
CREATE TABLE *new_table* AS (SELECT *FROM *old_table* WHERE *statement=false*);
CREATE TABLE *new_table* AS (SELECT *FROM *old_table* WHERE *1=2*);
CREATE TABLE new_table AS SELECT * FROM old_table where 0=1;
在where子句中,我们可以使用任何不等语句,例如where 1=2,2=3等等。这将告诉优化器该'where'条件肯定会返回false,从而防止任何数据从old_table复制。
如果您正在使用工作台,屏幕左侧有一个选项“数据导出”,只需单击它,选择要复制结构的数据库,然后会出现一个下拉选项,选择“仅转储结构”,并将其导出到文件夹中。
在任何地方使用“数据导入还原”选项导入此文件,选择路径和类型新模式名称并导入。您将拥有所需结构的新模式。
CREATE TABLE new_table AS (SELECT *FROM old_table WHERE 1=0);
- Sergey Kalinichenko