tidb 复制表中的数据如何复制?

tidb v 6.5.0 不支持 create table table_name as select * from T; 这种语法,但是如果我只想要T表中的某一段数据,比如 create table table_name as select * from T where T.pk > 2000 and T.pk <2500 and T.cust_name IN (‘tom’,‘jack’,‘eason’);这样的数据,请问怎么做啊?

show create table T;
然后建原来的建表语句表名改成 table_name ,
然后insert into table_name select * from T where T.pk > 2000 and T.pk <2500 and T.cust_name IN (‘tom’,‘jack’,‘eason’);

3Q大佬

分两步:
create table XXXX like XXXX;
insert into select * from XXXX where …

注意导入有1G内存数据量限制,例如你可以在执行窗口set tidb_mem_quota_query=8589934592改成8G

3Q,3Q,大佬

使用Insert select 语法。如果两个表一样,直接使用。如果需要列名对应,需要指定列名。

create table new_tab like t;
insert into new_tab select * from T where T.pk > 2000 and T.pk <2500 and T.cust_name IN (‘tom’,‘jack’,‘eason’);

不支持一步你就两步走呗,先建表,后insert。

1 个赞

先create ,再insert

tidb 有最大事务控制,小表可以这么弄,大表要注意

此话题已在最后回复的 60 天后被自动关闭。不再允许新回复。